using System;
class Program
{
static bool IsPrime(long number)
{
if (number < 2)
{
return false;
}
for (long i = 2; i * i <= number; i++)
{
if (number % i == 0)
{
return false;
}
}
return true;
}
static void PrintAllQPow2p1PrimeNumbers(int n)
{
long q = 1;
long number = q * q + 1;
while (number <= n)
{
if (IsPrime(number))
{
Console.Write(number + " ");
}
q++;
number = q * q + 1;
}
Console.WriteLine();
}
static void PrintAllFibonacciPrimeNumbers(int n)
{
long first = 1;
long second = 1;
while (second <= n)
{
if (IsPrime(second))
{
Console.Write(second + " ");
}
long third = first + second;
first = second;
second = third;
}
Console.WriteLine();
}
static void Main()
{
Console.Write("Введіть n: ");
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Прості числа вигляду q^2 + 1:");
PrintAllQPow2p1PrimeNumbers(n);
Console.WriteLine("Прості числа Фібоначчі:");
PrintAllFibonacciPrimeNumbers(n);
}
}
dXNpbmcgU3lzdGVtOwoKY2xhc3MgUHJvZ3JhbQp7CiAgIAogICAgc3RhdGljIGJvb2wgSXNQcmltZShsb25nIG51bWJlcikKICAgIHsKICAgICAgICBpZiAobnVtYmVyIDwgMikKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgICAgIGZvciAobG9uZyBpID0gMjsgaSAqIGkgPD0gbnVtYmVyOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBpZiAobnVtYmVyICUgaSA9PSAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgCiAgICBzdGF0aWMgdm9pZCBQcmludEFsbFFQb3cycDFQcmltZU51bWJlcnMoaW50IG4pCiAgICB7CiAgICAgICAgbG9uZyBxID0gMTsKICAgICAgICBsb25nIG51bWJlciA9IHEgKiBxICsgMTsKCiAgICAgICAgd2hpbGUgKG51bWJlciA8PSBuKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKElzUHJpbWUobnVtYmVyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZShudW1iZXIgKyAiICIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBxKys7CiAgICAgICAgICAgIG51bWJlciA9IHEgKiBxICsgMTsKICAgICAgICB9CgogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCk7CiAgICB9CgogICAgCiAgICBzdGF0aWMgdm9pZCBQcmludEFsbEZpYm9uYWNjaVByaW1lTnVtYmVycyhpbnQgbikKICAgIHsKICAgICAgICBsb25nIGZpcnN0ID0gMTsKICAgICAgICBsb25nIHNlY29uZCA9IDE7CgogICAgICAgIHdoaWxlIChzZWNvbmQgPD0gbikKICAgICAgICB7CiAgICAgICAgICAgIGlmIChJc1ByaW1lKHNlY29uZCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGUoc2Vjb25kICsgIiAiKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbG9uZyB0aGlyZCA9IGZpcnN0ICsgc2Vjb25kOwogICAgICAgICAgICBmaXJzdCA9IHNlY29uZDsKICAgICAgICAgICAgc2Vjb25kID0gdGhpcmQ7CiAgICAgICAgfQoKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOwogICAgfQoKICAgIHN0YXRpYyB2b2lkIE1haW4oKQogICAgewogICAgICAgIENvbnNvbGUuV3JpdGUoItCS0LLQtdC00ZbRgtGMIG46ICIpOwogICAgICAgIGludCBuID0gQ29udmVydC5Ub0ludDMyKENvbnNvbGUuUmVhZExpbmUoKSk7CgogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCLQn9GA0L7RgdGC0ZYg0YfQuNGB0LvQsCDQstC40LPQu9GP0LTRgyBxXjIgKyAxOiIpOwogICAgICAgIFByaW50QWxsUVBvdzJwMVByaW1lTnVtYmVycyhuKTsKCiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoItCf0YDQvtGB0YLRliDRh9C40YHQu9CwINCk0ZbQsdC+0L3QsNGH0YfRljoiKTsKICAgICAgICBQcmludEFsbEZpYm9uYWNjaVByaW1lTnVtYmVycyhuKTsKICAgIH0KfQo=