Advertisement
Guest User

Untitled

a guest
Oct 16th, 2012
388
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. program abc;
  2.  
  3. type
  4. mass2 = array[1..100000] of longword;
  5.  
  6. type
  7. mass = array [1..20] of int64;
  8.  
  9. type
  10. massE = array[1..1000000000] of boolean;
  11.  
  12. procedure element(var prime: massE);// Решето Эрастофена
  13. var
  14. j: int64;
  15. i, n: integer;
  16.  
  17. begin
  18. n := 1000000000;
  19. for i := 1 to n do
  20. prime[i] := true;
  21. prime[1] := false;
  22. for i := 2 to n do
  23. if prime[i] then
  24. if int64(i) * i <= n then
  25. begin
  26. j := i * i;
  27. while j <= n do
  28. begin
  29. prime[j] := false;
  30. j := j + i;
  31. end;
  32. end;
  33. end;
  34.  
  35. procedure alg(var prime: massE; var n: int64);// Ищем самое близкое простое к заданному числу
  36. var
  37. x, i: int64;
  38. begin
  39. if prime[n] then
  40. writeln(n)
  41. else
  42. begin
  43. i := n;
  44. repeat
  45. dec(i);
  46.  
  47. until(prime [i] and (n - i >= 2));
  48. write(i, ' ');
  49. x := n - i;
  50. alg(prime, x); // Ищем для остатка
  51. end;
  52. end;
  53.  
  54. procedure input(var t: byte; var a: mass);
  55. var
  56. i: byte;
  57. begin
  58. for i := 1 to t do
  59. readln(a[i]);
  60. end;
  61.  
  62. procedure output(var prime: massE; var a: mass; var t: byte);
  63. var
  64. i: byte;
  65. begin
  66. for i := 1 to t do
  67. alg(prime, a[i]);
  68. end;
  69.  
  70. var
  71. prime: massE;
  72. a: mass;
  73. T: byte;
  74.  
  75. begin
  76. element(prime);
  77. readln(t);
  78. input(t, a);
  79. output(prime, a, t);
  80. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement