Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program NumbersOfMercen;
- uses
- System.SysUtils;
- procedure IsPrime(m: longint; var ip: boolean);
- var
- i,k:longint;
- IsCorrect:boolean;
- begin
- IsCorrect:=true;
- if m>3 then begin
- i:=3;
- k:=round(sqrt(m));
- if odd(m) then
- repeat
- if m mod i=0 then IsCorrect:=false;
- inc(i);
- until (i>=k) or (not IsCorrect)
- else
- IsCorrect:=false;
- end;
- ip:=IsCorrect;
- end;
- var i, sqrtn: longint;
- n, m: longint;
- IsCorrect: boolean;
- begin
- IsCorrect:=False;
- m := 3;
- 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