Формулировка. Дано натуральное число. Проверить, является ли оно простым. Примечание: простым называется натуральное число, которое имеет ровно два различных натуральных делителя: единицу и само это число.
Решение. Задача отличается от предыдущей только тем, что вместо вывода на экран числа делителей, содержащегося в переменной count, необходимо выполнить проверку равенства счетчика числу 2. Если у числа найдено всего два делителя, то оно простое и нужно вывести положительный ответ, в противном случае – отрицательный ответ. А проверку через условный оператор, как мы уже знаем, можно заменить на вывод результата самого булевского выражения с помощью оператора write (writeln).
Код:
- program PrimeTest;
- var
- i, n, count: word;
- begin
- readln(n);
- count := 0;
- for i := 1 to n do begin
- if n mod i = 0 then inc(count)
- end;
- writeln(count = 2)
- end.
На этой странице рассмотрим задачи while22 и while23 задачника Абрамяна: определение простоты числа и задача о нахождении наибольшего общего делителя соответственно. Ниже есть форма для проверки числа на простоту, для этого нужно ввести целое положительное число в жёлтое поле и нажать "проверить".
НОД(A, B) = НОД(B, A mod B), если B ≠ 0; НОД(A, 0) = A,
где «mod» обозначает операцию взятия остатка от деления.
Решение этой задачи смотрите на странице наибольший общий делитель.
Ответы и объяснения
- nikolaj-semyonov
- Мегамозг
- 2017-05-07 16:50:20
Чтобы определить, является ли число N простым на Паскале, следует последовательно делить N на числа в промежутке от 2 до N/2. Если в процессе такого деления хотя бы один раз получится так, что остаток от деления будет составлять 0, значит число имеет помимо самого себя еще какой-то делитель. А следовательно число не является простым. Вот так легко определить является ли число простым.
program ex37;
uses crt;
var n, i,f, z: integer;
begin
clrscr;
write(‘Введите натуральное число n= ‘);
readln(n);
f:=0; <Начальное значение флага>
i:=2; <Начальное значение делителя>
z:=n div 2;