Простое число — это натуральное число, которое имеет ровно два различных натуральных делителя: единицу и самого себя.
Для проверки является ли конкретное число простым проверим это перебрав все его делители. Данный алгоритм называется проверкой на простоту перебором делителей.
def isprime(n):
if n == 1:
return False
d = 2
while d * d <= n:
if n % d == 0:
return False
d += 1
return True
Если нам нужно найти простые числа в каком-то диапозоне, то существуют алгоритмы нахождения списка простых чисел от 2 до некоторого значения:
Выведите все простые чила от M до N включительно. Если между ними нет простых чисел выведите "Absent".
Решение:
import math
m = int(input()) # первое число
n = int(input()) # второе число
k = math.ceil(math.sqrt(n))
x = m
isAbsent = True
isPrime = True
while x <= n:
count = 2
while count <= k and isPrime:
if x % count == 0:
isPrime = False
count = count + 1
if isPrime:
print(x)
isAbsent = False
isPrime = True
x = x + 1
if isAbsent: print('Absent')
Алгоритм нахождения всех простых чисел от 2 до N при помощи множеств
def primes(N):
"""Возвращает все простые числа от 2 до N"""
sieve = set(range(2, N))
for i in range(2, int(math.sqrt(N)) + 1):
if i in sieve:
sieve -= set(range(2 * i, N, i))
return sieve
Вывести представление целого числа N в виде произведения простых чисел. Выводить список чисел в порядке неубывания, разделенных знаком *