Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. program NumbersOfMercen;
  2. uses
  3. System.SysUtils;
  4. procedure IsPrime(m: longint; var ip: boolean);
  5. var
  6. i,k:longint;
  7. IsCorrect:boolean;
  8. begin
  9. IsCorrect:=true;
  10. if m>3 then begin
  11. i:=3;
  12. k:=round(sqrt(m));
  13. if odd(m) then
  14. repeat
  15. if m mod i=0 then IsCorrect:=false;
  16. inc(i);
  17. until (i>=k) or (not IsCorrect)
  18. else
  19. IsCorrect:=false;
  20. end;
  21. ip:=IsCorrect;
  22. end;
  23. var i, sqrtn: longint;
  24. n, m: longint;
  25. IsCorrect: boolean;
  26. begin
  27. IsCorrect:=False;
  28. m := 3;
  29. repeat
  30. write('Введите n = ');
  31. try
  32. readln(n);
  33. if n <= m then
  34. begin
  35. writeln('Числа Мерсена, меньшие данного числа(n), не существуют.');
  36. IsCorrect:=False
  37. end
  38. else
  39. begin
  40. writeln('Числа Мерсена,меньшие данного числа(n):');
  41. IsCorrect:=True;
  42. end;
  43. except
  44. begin
  45. writeln('Это не число!');
  46. IsCorrect:=False;
  47. end;
  48. end;
  49. until IsCorrect;
  50. while n > m do
  51. begin
  52. IsPrime(m,IsCorrect);
  53. if IsCorrect then writeln(m);
  54. m := m * 2 + 1
  55. end;
  56. readln;
  57. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement