Предмет: Информатика,
автор: 4205353
решите задачу по информатике
С помощью цикла WHILE.
Дано число нужно узнать если оно простое то вывести YES если нет то NO.
Например: 63 вывести YES;
Например: 43 вывести NO.
Giammy:
Не правильный пример, 43-простое 63-нет
Ответы
Автор ответа:
1
//PascalABC.NET
//Версия 3.3, сборка 1634 (14.02.2018)
function Simple(a: integer): boolean;
begin
result := true;
var i := 2;
while i <= a div 2 do
begin
if (a mod i = 0) then result := false;
inc(i);
end;
end;
begin
Println(Simple(ReadInteger('a->'))?'YES':'NO');
end.
Пример(1):
a->7
YES
Пример(2):
a->63
NO
//Версия 3.3, сборка 1634 (14.02.2018)
function Simple(a: integer): boolean;
begin
result := true;
var i := 2;
while i <= a div 2 do
begin
if (a mod i = 0) then result := false;
inc(i);
end;
end;
begin
Println(Simple(ReadInteger('a->'))?'YES':'NO');
end.
Пример(1):
a->7
YES
Пример(2):
a->63
NO
Автор ответа:
0
PascalABC.NET 3.3.5, сборка 1650 от 01.04.2018
Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
if n<4 then Writeln('YES')
else begin
var found:=(n mod 2=0);
var p:=3;
while (not found) and (sqr(p)<=n) do
begin found:=(n mod p=0); p+=2 end;
if found then Writeln('NO')
else Writeln('YES')
end
end.
Примеры
n= 63
NO
n= 43
YES
Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
if n<4 then Writeln('YES')
else begin
var found:=(n mod 2=0);
var p:=3;
while (not found) and (sqr(p)<=n) do
begin found:=(n mod p=0); p+=2 end;
if found then Writeln('NO')
else Writeln('YES')
end
end.
Примеры
n= 63
NO
n= 43
YES
Похожие вопросы
Предмет: Английский язык,
автор: davidmarabian
Предмет: Математика,
автор: hhhnamazov
Предмет: Русский язык,
автор: majdanovmadi8
Предмет: Математика,
автор: mednat1980милана
Предмет: Математика,
автор: stella201