Проверка числа на простоту: решение на Pascal
Постановка задачи
Дано натуральное число N. Необходимо определить, является ли оно простым.
Простое число - это натуральное число, имеющее ровно 2 делителя (1 и само число). Например: 2, 3, 5, 7, 11, 13.
Алгоритм решения
Используем следующий подход:
- Вводим число N с клавиатуры
- Инициализируем счетчик делителей k = 0
- В цикле от 1 до N проверяем делимость числа N на текущее значение счетчика
- Если делитель найден, увеличиваем счетчик k
- После цикла проверяем: если k = 2, число простое
Решение на Pascal с пояснениями
program CheckPrimeNumber;
var
i, n, k: integer;
begin
// Ввод числа для проверки
write('Введите натуральное число n=');
readln(n);
// Инициализация счетчика делителей
k := 0;
// Цикл поиска делителей
for i := 1 to n do
if n mod i = 0 then
k := k + 1;
// Проверка количества делителей
if k = 2 then
writeln('верно') // Число простое
else
writeln('неверно'); // Число составное
end.
Как работает программа:
- Программа запрашивает число для проверки
- Перебирает все возможные делители от 1 до N
- Подсчитывает количество делителей
- Выводит "верно", если делителей ровно 2 (число простое)
- Выводит "неверно" в противном случае
Примеры работы программы
Пример 1: Проверка простого числа
Введите натуральное число n=7 верно
Пример 2: Проверка составного числа
Введите натуральное число n=8 неверно
Оптимизация алгоритма
Данный алгоритм является неэффективным по следующим причинам:
- Проверяет все числа от 1 до N, хотя достаточно проверить до √N
- Продолжает проверку после нахождения более двух делителей
Попробуйте оптимизировать алгоритм, используя эти наблюдения.
Комментариев нет:
Отправить комментарий