Изучение простых чисел в Python

Когда мы смотрим на простые числа, они, по сути, представляют собой любое число ›1, которое не является произведением двух других чисел. Его можно разделить только на себя и на цифру 1. Это свойство называется примитивностью. Простые числа встречаются от 2 до бесконечности или до тех пор, пока существует последовательность чисел. Согласно основной теореме арифметики, каждое целое число ›кроме 1 либо само является простым числом, либо может быть представлено как произведение простых чисел. В нем также говорится, что числа факторизации могут быть уникальными с простыми числами, но не с составными числами. Простые числа (за исключением 2) также обычно нечетные.

Если бы мы создали программу для генерации простых чисел, нам пришлось бы начать с формулирования алгоритма свойства простого числа. Оно должно делиться только само на себя и на 1. Оно не может иметь других кратных, кроме самого себя, умноженного на 1. Например, 11 - простое число. У него нет других кратных, дающих результат без остатка, кроме 11 и 1. Само число не является простым числом. Это потому, что у него есть только один фактор - это он сам.

Начнем с определения границ нижнего и верхнего пределов. Лучше всего начинать либо с 0, либо с 1, где число ‹2. Для верхнего предела любое число› 0 определяет конец диапазона. Например, мы можем установить его на 100.

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

lowerlimit = 0
upperlimit = 100

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

lowerlimit = int(input("Enter lower range: "))
upperlimit = int(input("Enter upper range: "))

Теперь мы создаем основную функцию, которую можем просто вызвать main ().

def main():

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

for num in range(lowerlimit,upperlimit + 1):

Мы создаем переменную num в диапазоне от нижнего и верхнего пределов в операторе цикла for. Верхний предел должен быть увеличен на 1 или верхний предел + 1, что дает 101. Это означает до 101, но не включая его, так что он покрывает наш диапазон только до 100.

Теперь мы создаем условие, что num должно быть ›1, как часть процесса итерации диапазона чисел, чтобы определить, является ли это простым числом. Затем наш алгоритм обработает итерацию чисел, начиная с нижнего предела до верхнего предела.

if num > 1:
   for i in range(2,num):
       if (num % i) == 0:
           break
       else:
           print(num)

Внутри нашего оператора условия мы определяем другую переменную с именем i в другом операторе цикла for. Эта переменная будет использоваться для проверки того, имеет ли число num (должно быть больше 1) в диапазоне от 2 до последнего числа перед ним (оно всегда меньше 1 при использовании функции диапазона), имеет ли какие-либо факторы, которые остаток будет равен 0. Это будет означать, что это составное, а не простое число. Начнем с 2, чтобы исключить 1, поскольку простые числа делятся на 1.

В цикле используется следующая оценка:

if (num % i) == 0:

Это использует оператор по модулю для вычисления num и i. Скажем, например, что у нас есть число, равное 11.

num = 11
i = 2 ... (11 - 1)
>>> 11 % 10
1
>>> 11 % 9
2
>>> 11 % 8
3
>>> 11 % 7
4
>>> 11 % 6
5
>>> 11 % 5
1
>>> 11 % 4
3
>>> 11 % 3
2
>>> 11 % 2
1

Поскольку ни один из множителей не имеет остатка от 0, число 11 или num является простым числом. Это вычисляет условие else и печатает число. Если num было составным числом, внутренний цикл прервется и не распечатает число.

Функция должна выглядеть следующим образом:

def main():
    for num in range(lowerlimit,upperlimit + 1):
       if num > 1:
           for i in range(2,num):
               if (num % i) == 0:
                   break
               else:
                   print(num)

В результате код выглядит следующим образом:

2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

Результатом являются все простые числа от 0 до 100.