Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

помогите, пожалуйста!! расписать нужно каждую строчку в паскаль

Марина Иванова Ученик (187), на голосовании 7 лет назад
procedure isprime (n: longint; var ip: boolean);
var i, sqrtn: longint; //логическая операция
begin
if (n >= 5) and ((n - 1) mod 6 = 0) or ((n + 1) mod 6 = 0)
then begin
i := 5;
sqrtn := trunc(sqrt(n));
ip := false;
while i <= sqrtn do
begin
if n mod i = 0 then exit;
inc(i, 2)
end;
ip := true
end
else ip := (n = 2) or (n = 3)
end;
var n, m: longint;
mp: boolean;
begin
m := 3;
write('n = ');
readln(n);
if n <= m
then writeln('Prime Mersenne numbers, smaller this number, don''t exist.')
else begin
writeln('Prime Mersenne numbers, there is less than this number:');
while n > m do
begin
isprime(m, mp);
if mp then writeln(m);
m := m * 2 + 1
end
end;
readln
end.
Голосование за лучший ответ
dim565 Искусственный Интеллект (424435) 7 лет назад
procedure isprime (n: longint; var ip: boolean); // объявляем процедуру, принимаем переменные n и ip
var i, sqrtn: longint; //объявляем переменные i и sqrtn типа longint;
begin // тело процедуры
if (n >= 5) and ((n - 1) mod 6 = 0) or ((n + 1) mod 6 = 0) // условие: если n >= 5 и (остаток от деления n-1 на 6 равен нулю или остаток от деления n+1 на 6 равен нулю)
then begin // выполняем код
i := 5; // переменной i присваиваем значение 5
sqrtn := trunc(sqrt(n)); // переменная sqrtn = целая часть от квадратного корня переменной n
ip := false; // значение переменной ip = false (ложь)
while i <= sqrtn do // выполняем цикл пока i меньше или равно переменной sqrtn
begin // тело цикла
if n mod i = 0 then exit; // если остаток от деления n на i = 0, то выходим из цикла
inc(i, 2) // увеличиваем переменную i на 2
end; // конец цикла
ip := true // переменная ip=true (истина)
end // конец условия
else ip := (n = 2) or (n = 3) // если условие ложное, то ip=2, если n=2 или ip=3 если n=3 (НЕ УВЕРЕН В ЭТОЙ СТРОЧКЕ)
end; // конец процедуры

var n, m: longint; //объявляем переменные
mp: boolean; //объявляем переменные
begin //тело программы
m := 3; // m=3
write('n = '); // выводим на экран текст "n="
readln(n); // принимаем значение введеное с клавиатуры в переменную т
if n <= m // если n меньше или равно чем m
then writeln('Prime Mersenne numbers, smaller this number, don''t exist.') // выводим этот текст
else begin // иначе
writeln('Prime Mersenne numbers, there is less than this number:'); // выводим текст
while n > m do // цикл пока n больше чем m
begin // тело цикла
isprime(m, mp); // выполняем процедуру isprime, передаем ей переменные m и mp
if mp then writeln(m); // если переменная mp существует, то выводим m (НЕ УВЕРЕН В ЭТОЙ ЧАСТИ)
m := m * 2 + 1 // значение m = m*2+1
end // конец цикла
end; // конец тела программы
readln // ожидаем ввода, чтобы не закрывалось окно
end. // конец программы
Des DenГуру (4012) 7 лет назад
ip := (n = 2) or (n = 3)
если n равно 2 или 3 то ip=истина, это же булево значение.
Марина ИвановаУченик (187) 7 лет назад
спасибо) уесть еще программы, можете прописать?
Похожие вопросы