Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program zakaz_20_02_2021;
- uses
- SysUtils, Math;
- {$APPTYPE CONSOLE}
- Var
- n, p, r, c, i: Int64;
- IsPrime, IsNotPrime: Boolean;
- // n - натуральное число, p - степень, простое число, r - число Мерсена
- // i - позиция натурального числа
- Begin
- Write('Vvedite n: ');
- readln(n);
- if (n = 2) or (n = 3) then
- Writeln('Net takih chisel')
- else if n = 1 then
- Writeln('Dannoe chislo ne yavlyaetsya neobhodimim dlya resheniya')
- else if n < 1 then
- Writeln('Ne naturalnoe chislo ')
- else
- begin
- p := 2;
- r := 0;
- c := 0;
- While ((r < n) and (p <= n)) do
- begin
- IsNotPrime := False;
- For i := 2 to p - 1 do
- if p mod i = 0 then
- IsNotPrime := True;
- if (not IsNotPrime) and (p > 1) then
- IsPrime := true
- else
- IsPrime := false;
- if IsPrime then
- begin
- r := Round(power(2, p) - 1);
- IsNotPrime := False;
- For i := 2 to r - 1 do
- if r mod i = 0 then
- IsNotPrime := True;
- if (not IsNotPrime) and (r > 1) then
- IsPrime := true
- else
- IsPrime := false;
- if (r < n) and IsPrime then
- begin
- Write(r, ' '); // Проверка на простое число Мерсена
- c := c + 1; // счётчик кол-ва чисел Мерсена
- end;
- end;
- p := p + 1;
- end;
- Writeln;
- Writeln('Takih chisel = ', c);
- end;
- Writeln('konets');
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment