mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-01-18 16:27:02 +00:00
add simple improved Sieve Of Eratosthenes Algorithm (#1412)
* add simple improved Sieve Of Eratosthenes Algorithm * added doctests * name changed
This commit is contained in:
parent
afeb13bbc8
commit
a06995a686
41
maths/prime_sieve_eratosthenes.py
Normal file
41
maths/prime_sieve_eratosthenes.py
Normal file
|
@ -0,0 +1,41 @@
|
|||
'''
|
||||
Sieve of Eratosthenes
|
||||
|
||||
Input : n =10
|
||||
Output : 2 3 5 7
|
||||
|
||||
Input : n = 20
|
||||
Output: 2 3 5 7 11 13 17 19
|
||||
|
||||
you can read in detail about this at
|
||||
https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
|
||||
'''
|
||||
|
||||
def prime_sieve_eratosthenes(num):
|
||||
"""
|
||||
print the prime numbers upto n
|
||||
|
||||
>>> prime_sieve_eratosthenes(10)
|
||||
2 3 5 7
|
||||
>>> prime_sieve_eratosthenes(20)
|
||||
2 3 5 7 11 13 17 19
|
||||
"""
|
||||
|
||||
|
||||
primes = [True for i in range(num + 1)]
|
||||
p = 2
|
||||
|
||||
while p * p <= num:
|
||||
if primes[p] == True:
|
||||
for i in range(p*p, num+1, p):
|
||||
primes[i] = False
|
||||
p+=1
|
||||
|
||||
for prime in range(2, num+1):
|
||||
if primes[prime]:
|
||||
print(prime, end=" ")
|
||||
|
||||
if __name__ == "__main__":
|
||||
num = int(input())
|
||||
|
||||
prime_sieve_eratosthenes(num)
|
Loading…
Reference in New Issue
Block a user