Napisz w języku Python program, który za pomocą funkcji będzie szukał liczb pierwszych w przedziale <2; n>.



Odpowiedź :

można to wykonać z pomocą algorytmu o nazwie Sito Eratostenesa (Sieve of Eratosthenes)

KOD:

from math import isqrt

maxNum = int(input()) + 1

isPrime = [True] * maxNum

isPrime[0] = isPrime[1] = False  # 0 and 1 are not prime numbers

for i in range(2, isqrt(maxNum) + 1):

   if isPrime[i]:

       for j in range(i * i, maxNum, i):

           isPrime[j] = False

primes = [i for i in range(maxNum) if isPrime[i]]

print(primes)