Why in prime number’s problem other programmers divide that number by 2 and numbers increasingly to that number? It is possible to also just divide that number by 2,3,5,7 and check if that number is prime or not? Is there any flaw in it?
def check_prime(number):
if number == 1:
return None
elif number == 2 or number == 3 or number == 5 or number == 7:
return number
elif number % 2 == 0 or number % 3 == 0 or number % 5 == 0 or number % 7 == 0:
return None
else:
return number
def number_list(numbers):
for number in numbers:
check_prime(number)
number_list([1, 2, 3, 4, 5, 6, 7, 8, 9])
2
You can use sieve:
def get_sieve(n):
if n < 3:
return
primes = [True] * (n + 1)
primes[0] = primes[1] = False
for i in range(2, int(n ** 0.5) + 1):
if primes[i]:
for j in range(i * i, n + 1, i):
primes[j] = False
res = [i for i in range(n + 1) if primes[i]]
return res[-10:]
print(get_sieve(10 ** 7))