В этом уроке Python я объясню вам, как написать программу, проверяющую, является ли число простым или нет в Python.

При создании одного из проектов я реализовал концепцию простых чисел в Python, чтобы легко умножать большие простые числа, поскольку их произведение сложно разложить обратно на исходные числа.

В этом уроке я объясню три подхода к проверке того, является ли данное число простым, используя метод  деления с функцией и без нее, а также рекурсивный подход.

Содержание

Для проверки простого числа

Простое число — это число больше 1, которое можно разделить только на 1 и на себя. Это означает, что если у вас есть число и оно делится на 1 и само себя, то это число простое.

Итак, вы узнаете, как проверить, является ли число простым в Python. Подход, который вы здесь будете использовать, называется пробным разделением.

Сначала создайте переменную со значением, равным 5. Затем вам нужно проверить, является ли это число простым или нет.

number = 5

Далее вам нужно выполнить итерацию в диапазоне от 2 до 5//2, что равно 3, и проверить, делится ли число на любое число в диапазоне, как показано в коде ниже.

if number > 1:
  for i in range(2,(number//2)+1):
    if(number % i) ==0:
      print('Given number is not prime:', number)
      break
    else:
      print('Given number is prime:', number)
else:
  print('Number is not prime:', number)

Для проверки простого числа

Посмотрите на приведенный выше код; выполните код, чтобы проверить, больше ли заданное число 1, используя строку «если число > 1». Если число больше 1, он проверяет, делится ли данное число на число в диапазоне 2 и на число//2, равное 3. Таким образом, цикл выполняется в диапазоне от 2 до 3.

В цикле он пытается разделить заданное число на «i» и проверяет, равен ли остаток 0, используя if (num %) == 0. Если остаток равен 0, он делится на число в диапазоне От 2 до 3, поэтому данное число не может быть простым.

Но в данном случае поставляется 5. Поскольку оно не делится ни на какое число, данное число является простым.

С помощью функции

В предыдущем разделе вы изучили программу Python для проверки простых чисел без какой-либо функции.

Создайте функцию с именем check_prime_number, которая принимает один аргумент: число, которое вы хотите узнать, является ли оно простым или нет, как показано ниже.

def check_prime_number(number):
  if number > 1:
    for i in range(2,(number//2)+1):
      if(number % i) == 0:
        print('Given number is not prime:', number)
        break
      else:
        print('Given number is prime:', number)
        break
  else:
    print('Number is not prime:', number)

Теперь проверим, является ли данное число 19 простым, передав его в функцию check_prime_number.

check_prime_number(19)

С функци check_prime_number

Когда вы передаете 19 в функцию check_prime_number, она проверяет и возвращает «Дано число в простом виде: 19».

Вся логика такая же, как и в предыдущем разделе, только здесь логика, обернутая функцией check_prime_number.

С использованием рекурсии

Рекурсия возникает, когда функция вызывает саму себя, поэтому здесь вы увидите, как она неоднократно вызывает себя, чтобы проверить, является ли данное число простым.

Например, создайте функцию is_number_prime, как показано ниже.

def is_number_prime(n, i=2):

    if n  n:
        return True

    return is_number_prime(n, i + 1)

Вызовите функцию со значением 23, чтобы определить, является ли это число простым.

number = 23

if is_number_prime(number):
    print("Yes, given number is prime")
else:
    print("No, given number is not prime")

С использованием рекурсии

Посмотрите на результат; это показывает, что данное число 23 является простым. Давайте разберемся, как здесь работает рекурсия.

  • Здесь определяется функция с именем «is_number_prime(n, i=2)». Требуется число n, чтобы проверить его на простое число и «i», текущий делитель со значением по умолчанию 2.
  • Затем первая строка — это если n = 2 внутри функции. Это означает, что он проверяет, меньше ли «n» 2 или равен 2. Если n равен 2, он возвращает true, используя «True if n==2», поскольку 2 также является простым числом. В противном случае он возвращает false, используя «else false», поскольку число меньше 2 и не является простым.
  • После следующей строки кода «if n % i == 0: return False» проверяется, делится ли данное число «n» на «i», что означает, что после деления оно становится равным 0, а затем возвращает значение False, указывающее, что данное число не является простым.
  • Следующая строка «if i * i > n: return True» проверяет, больше ли квадрат «i», чем «n». Если это правда, то это означает, что не найдено ни одного делителя до квадратного корня из ‘n’, таким образом, «n» — простое число.

Если все три вышеуказанных условия ложны или не выполнены, функция вызывает саму себя, используя возврат строки is_number_prime(n, i + 1). Итак, здесь текущий делитель увеличивается на 1, используя i+1 в аргументе функции.

Затем тот же процесс повторяется со следующим делителем до тех пор, пока простое число не будет найдено или не найдено.

Затем следующий номер кода = 23, инициализируйте переменную со значением 23. Это значение передается в функцию, используя if is_number_prime(number). Это означает, что если данное число является простым, то оно возвращает true, что означает, что оно печатает «Да, данное число простое», в противном случае выводится «Нет, данное число не простое».

Добавить комментарий