Простыми называются такие натуральные числа, у которых ровно два делителя: 1 и само это число (они должны отличаться, то есть 1 — не простое число). Простые числа и вообще разложение чисел на множители долгое время были предметом абстрактной игры ума математиков, но в настоящее время некоторые математические понятия, связанные с разложением на множители, играют важнейшую роль в шифровании трафика в интернете.
Напишите программу, которая считывает одно натуральное число и выводит на первой строке все делители этого числа в порядке возрастания, разделённые пробелами, а на второй — «ПРОСТОЕ» или «НЕТ» в зависимости от того, простым было введённое число или нет.
Формат ввода
Одно натуральное число.
Формат вывода
В первой строке — все делители введенного числа, записанные через пробел (перед первым и после последнего делителя пробелов нет).
Во второй — сообщение «ПРОСТОЕ» или «НЕТ».
напиши код на python
Информатика 10 класс Алгоритмы и структуры данных проверка на простоту Новый
Давайте разберем, как можно решить эту задачу шаг за шагом. Мы напишем программу на языке Python, которая будет выполнять следующие действия:
Теперь давайте перейдем к написанию кода:
# Шаг 1: Считываем число n = int(input("Введите натуральное число: ")) # Шаг 2: Находим все делители числа divisors = [] for i in range(1, n + 1): if n % i == 0: divisors.append(i) # Выводим делители print(" ".join(map(str, divisors))) # Шаг 3: Проверяем, является ли число простым if len(divisors) == 2: print("ПРОСТОЕ") else: print("НЕТ")
Давайте разберем, что делает этот код:
input()
для считывания числа от пользователя и преобразуем его в целое число с помощью int()
.divisors
, в который будем добавлять делители числа. Затем используем цикл for
для перебора всех чисел от 1 до n
(включительно). Если n
делится на i
без остатка (проверяем с помощью n % i == 0
), то добавляем i
в список делителей." ".join(map(str, divisors))
.Теперь у вас есть программа, которая решает поставленную задачу. Если у вас есть вопросы, не стесняйтесь их задавать!