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)