Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program NumbersOfMercen;
- uses
- System.SysUtils;
- procedure IsPrime(m: longint; var IsCorrect: boolean);
- var
- i, k: longint;
- begin
- IsCorrect := True;
- if (m > 3) then
- begin
- i := 3;
- k := round(sqrt(m));
- repeat
- if ((m mod i) = 0) then
- IsCorrect := False;
- inc(i);
- until (i > k-1) or (not IsCorrect)
- end;
- end;
- var
- i, sqrtn: longint;
- n, m: longint;
- IsCorrect: boolean;
- begin
- IsCorrect := False;
- m := 3;
- WriteLn('Данная программа находит числа Мерсена,которые меньше числа n.');
- repeat
- Write('Введите n = ');
- try
- Readln(n);
- if (n <= m) then
- begin
- WriteLn('Числа Мерсена, меньшие данного числа(n), не существуют.');
- IsCorrect := False
- end
- else
- begin
- WriteLn('Числа Мерсена,меньшие данного числа(n):');
- IsCorrect := True;
- end;
- except
- begin
- WriteLn('Это не число!');
- IsCorrect := False;
- end;
- end;
- until IsCorrect;
- While (n > m) do
- begin
- IsPrime(m,IsCorrect);
- if (IsCorrect) then
- WriteLn(m);
- m := m * 2 + 1
- end;
- Readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement