На вход программе подается натуральное число n <= 109. Проверьте, является ли оно простым. Выведите YES или NO в зависимости от ответа на вопрос задачи. Максимальное время работы программы на одном тесте — 0,1 секунды.
Ответы
Ответ дал:
0
Var
a,flag,i:integer;
Begin
Readln(a);
flag:=0;
for i:=2 to a do begin
if i<>a then if a mod i=0 then
begin flag:=1; break; end; end;
if flag=1 then Writeln('NO')
else Writeln('YES')
End.
a,flag,i:integer;
Begin
Readln(a);
flag:=0;
for i:=2 to a do begin
if i<>a then if a mod i=0 then
begin flag:=1; break; end; end;
if flag=1 then Writeln('NO')
else Writeln('YES')
End.
Ответ дал:
0
А можете объяснить, пожалуйста, что такое flag?
Ответ дал:
0
flag это преременная типа сигнального флажка. В цикле я проверяю есть ли деление от без деления 1 и самого на себя. Грубо говоря проверяю на простое. Но как мне тогда понять какой результат я получил в цикле? Ведь если я начну вывод в цикле, то вывод будет YES YES NO YES и т.д. Вот для этого и нуден флаг. Здесь если эта переменная равна единице, значит есть хотя бы одно число на которое делится данное не считая себя и единицы, а соответственно не простое.
Ответ дал:
0
Спасибо
Вас заинтересует
2 года назад
2 года назад
7 лет назад
10 лет назад
10 лет назад
10 лет назад