Предмет: Информатика,
автор: devilishworld
На вход программе подается натуральное число 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
Спасибо
Похожие вопросы
Предмет: Математика,
автор: Аноним
Предмет: Қазақ тiлi,
автор: batic222222
Предмет: Литература,
автор: 1234567asdfg
Предмет: Литература,
автор: Аноним