Число простое или сложное?

import math

# Число, простота которого проверяется
n = int(input())

# Понятия "простое число" и
# "сложное число" имеют смысл
# только для натуральных чисел
# от 2 и больше.
if n < 2:
    print("A number must be more 1")
    # выход из программы
    quit()

# Если число равно 2, то оно простое.
elif n == 2:
    print("It's prime number")
    # выход из программы
    quit()

# Переменная-делитель,
# которая будет последовательно
# увеличиваться на 1 в цикле.
i = 2

# Предел, до которого
# будет увеличиваться i.
# При проверке простоты числа
# достаточно перебрать делители
# от 2 до квадратного корня
# из исследуемого числа.
limit = int(math.sqrt(n))

# Пока i не больше предела
while i <= limit:
    # проверять, делится ли число n
    # нацело на текущий делитель.

    # Если делится,
    if n % i == 0:
        # то это составное число.
        print("It's composite number")
        # Выйти из программы
        quit()

    # увеличить делитель на 1
    i += 1

# До этой точки программа дойдет
# только в случае, если в цикле
# не было определено,
# что число составное.
# Поскольку оно не составное,
# значит простое.
print("It's prime number")

# Примечание. Мы не можем проверять
# простоту числа 2 в основном цикле,
# так как корень из двух,
# приведенный к целому, будет равен 1.
# В цикле при делении числа 2
# на число 1 или 2,
# мы получим остаток 0.
# Получится, что число 2 составное.
# Однако это не так.
17
It's prime number
25
It's composite number



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий