fork download
  1. using System;
  2.  
  3. public class Test
  4. {
  5. static bool IsPrime(int n)
  6. {
  7. if (n <= 3)
  8. {
  9. return true;
  10. }
  11. if (n % 2 == 0 || n % 3 == 0)
  12. {
  13. return false;
  14. }
  15. for (int i = 5; i * i <= n; i += 6)
  16. {
  17. if (n % i == 0 || n % (i + 2) == 0)
  18. {
  19. return false;
  20. }
  21. }
  22. return true;
  23. }
  24. static void PrintAllQPow2p1PrimeNumbers(int n)
  25. {
  26. for (int i = 2; i<=n; i++)
  27. {
  28. if (IsPrime(i))
  29. {
  30. if (Math.Sqrt(i-1)%1==0) { Console.WriteLine(i); }
  31. }
  32. }
  33. }
  34.  
  35. static void PrintAllFibonacciPrimeNumbers(int n)
  36. {
  37. int i = 1;
  38. int i_prv = 1;
  39. for(int i_crnt = 2;i_crnt<=n; i_crnt=i_prv+i)
  40. {
  41. i = i_prv;
  42. i_prv = i_crnt;
  43. if (IsPrime(i_crnt)) { Console.WriteLine(i_crnt); }
  44. }
  45. }
  46.  
  47. static void Main()
  48. {
  49. Console.Write("Введіть крайню межу для діапазону [2,n]:");
  50. int n = int.Parse(Console.ReadLine());
  51.  
  52. Console.WriteLine("Прості числа вигляду q^2 + 1:");
  53. PrintAllQPow2p1PrimeNumbers(n);
  54.  
  55. Console.WriteLine("Прості числа Фібоначчі:");
  56. PrintAllFibonacciPrimeNumbers(n);
  57. }
  58. }
  59.  
Success #stdin #stdout 0.07s 30432KB
stdin
50
stdout
Введіть крайню межу для діапазону [2,n]:Прості числа вигляду q^2 + 1:
2
5
17
37
Прості числа Фібоначчі:
2
3
5
13