Проверка, простое ли число в Python

Статьи

Введение

В данной статье напишем несколько вариаций кода на языке программирования Python для проверки, является ли число простым.

Простые числа — это числа, которые делятся только на себя и на единицу.

Проверка, простое ли число в Python без использования модуля math

Начнём написание кода с того, что дадим пользователю возможность ввести какое-нибудь число при помощи функции input(). Также, чтобы пользователь не мог вводить число меньше двух, функция input() будет находиться внутри цикла while.

number = 0
while  number < 2:
    number = int(input('Введите число: '))

Далее создадим переменную prime равную True. Она нам понадобится для получения итогового результата.

number = 0
while  number < 2:
    number = int(input('Введите число: '))

prime = True

Создадим цикл for, который будет проходиться по диапазону от 2 до квадратного корня (число в степени 0,5 эквивалентно извлечению квадратного корня) из number + 1. Внутри цикла будет производиться проверка, делится ли число number на i без остатка с помощью оператора %. Если делится, то переменная prime присваивает значение False, и цикл прерывается с помощью оператора break.

number = 0
while  number < 2:
    number = int(input('Введите число: '))

prime = True
for i in range(2, int(number ** 0.5) + 1):
    if number % i == 0:
        prime = False
        break
    prime = True

Если после выполнения цикла for значение в переменной prime останется равняться True, то будет выводиться сообщение, что число является простым. В противном случае выведется сообщение, что число не является простым.

number = 0
while  number < 2:
    number = int(input('Введите число: '))

prime = True
for i in range(2, int(number ** 0.5) + 1):
    if number % i == 0:
        prime = False
        break
    prime = True

if prime:
    print(number, "является простым числом.")
else:
    print(number, "не является простым числом.")

Проверка работы кода

В качестве примера попробуем вводить различные числа:

# Ввод: 10
# Вывод: 10 не является простым числом.

# Ввод: 17
# Вывод: 17 является простым числом.

# Ввод: 3
# Вывод: 3 является простым числом.

Код в виде функции

Также код можно представить в виде функции:

def is_prime(number):
    if number < 2:
        return False
    for i in range(2, int(number**0.5) + 1):
        if number % i == 0:
            return False
    return True

number = int(input('Введите число: '))
if is_prime(number):
    print(f"{number} - простое число")
else:
    print(f"{number} - не является простым числом")

Проверка, простое ли число в Python с использованием модуля math

Теперь напишем тот же самый код, но с использованием модуля math. Из него нам понадобится всего одна функция sqrt(). Функция math.isqrt() возвращает целую часть квадратного корня из неотрицательного целого числа.

Импортируем функцию isqrt():

from math import isqrt

Заменим строку «int(number**0.5) + 1» в основном коде на «isqrt(number) + 1«:

from math import isqrt

number = 0
while  number < 2:
    number = int(input('Введите число: '))

prime = True
for i in range(2, isqrt(number) + 1):
    if number % i == 0:
        prime = False
        break
    prime = True

if prime:
    print(number, "является простым числом.")
else:
    print(number, "не является простым числом.")

Код в виде функции

Также код можно представить в виде функции:

import math

def is_prime(number):
    if number < 2:
        return False
    for i in range(2, math.isqrt(number) + 1):
        if number % i == 0:
            return False
    return True

# Пример использования функции
number = int(input('Введите число: '))
if is_prime(number):
    print(f"{number} - простое число")
else:
    print(f"{number} - не является простым числом")

Заключение

В ходе статьи мы с Вами несколько вариаций программы для проверки числа на простоту в Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Admin
Admin
IT Start