Var:a,i,b:integer begin readln(a); for i:=1 to a do if a mod i=0 then b:=b+1; if b=2 then writeln('простое число') else writeln(' не простое число') end. Объясните пожалуйста подробно ,что делает эта программа? В чем суть ? ...

Var:a,i,b:integer begin readln(a); for i:=1 to a do if a mod i=0 then b:=b+1; if b=2 then writeln('простое число') else writeln(' не простое число') end. Объясните пожалуйста подробно ,что делает эта программа? В чем суть ? Буду очень благодарна)
Гость
Ответ(ы) на вопрос:
Гость
Ты вводишь любое число, которое в памяти компьютера присваивается в ячейку 'a'.  for i:=1 to a do  Данная строка — некий алгоритм, повторяющийся определённое количество раз; 1 to 'a' ('a' — число, которое ты ввела). Например, если ты ввела число 3, то твой алгоритм будет повторяться 3 раза.  if a mod i=0 then b:=b+1  Данная строка означает: если остаток от деления 'a' на 'i' равен нулю, то мы к 'b' прибавляем один.  if b=2 then writeln('простое число')  Если число 'b' равно двум, то на экране выводим надпись: "Простое число";  else writeln(' не простое число') Если же число 'b' неравно двум, то на экране выводим надпись: "Непростое число" (если переводить подробно).  А теперь, насчёт числа 3.  Заменяем программу:  var a, i, b:integer;  begin readln (a);  for i:=1 to 3 do  if 3 mod i = 0 then b:=b + 1;  if b = 2 then writeln ('простое число') else writeln ('непростое число'); end. Вводится число 3. Алгоритм повторяется 3 раза. Остаток деления 3 на 1 равен нулю? — нет —> b + 1 (b = 1);  Остаток деления 3 на 2 равен нулю? — нет —> b + 1 = 1 + 1 = 2 (b = 2);  Остаток деления 3 на 3 равен нулю? — нет —> b + 1 = 2 + 1 = 3 (b = 3). <Программа идёт дальше> Если b = 2, то выводим надпись: "простое число".  b ≠ 2, так как b = 3 (после выполнения алгоритма) —> выводим надпись: "Непростое число".  Конец. Надеюсь, доходчиво объяснил. Удачи :)
Не нашли ответ?
Ответить на вопрос
Похожие вопросы