From 07471493e35be97dc33dc506171796c283b1057a Mon Sep 17 00:00:00 2001 From: Shubham Lad Date: Mon, 21 Oct 2019 19:41:35 +0530 Subject: [PATCH 1/3] add simple improved Sieve Of Eratosthenes Algorithm --- maths/SieveOfEratosthenesPrimeNumber.py | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 maths/SieveOfEratosthenesPrimeNumber.py diff --git a/maths/SieveOfEratosthenesPrimeNumber.py b/maths/SieveOfEratosthenesPrimeNumber.py new file mode 100644 index 000000000000..23193c01cf85 --- /dev/null +++ b/maths/SieveOfEratosthenesPrimeNumber.py @@ -0,0 +1,29 @@ +''' +Sieve of Eratosthenes + +Input : n =10 +Output : 2 3 5 7 + +Input : n = 20 +Output: 2 3 5 7 11 13 17 19 +''' + +def primeNumbers(num): + + 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()) + + primeNumbers(num) \ No newline at end of file From b69389b13d2b0bdbaa47bbdbaba2b7947734fab6 Mon Sep 17 00:00:00 2001 From: Shubham Lad <30789414+ShuLaPy@users.noreply.github.com> Date: Mon, 21 Oct 2019 23:20:22 +0530 Subject: [PATCH 2/3] added doctests --- maths/SieveOfEratosthenesPrimeNumber.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/maths/SieveOfEratosthenesPrimeNumber.py b/maths/SieveOfEratosthenesPrimeNumber.py index 23193c01cf85..a0df3b577b93 100644 --- a/maths/SieveOfEratosthenesPrimeNumber.py +++ b/maths/SieveOfEratosthenesPrimeNumber.py @@ -6,9 +6,21 @@ 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 primeNumbers(num): + """ + print the prime numbers upto n + + >>> primeNumbers(10) + 2 3 5 7 + >>> primeNumbers(20) + 2 3 5 7 11 13 17 19 + """ + primes = [True for i in range(num + 1)] p = 2 @@ -26,4 +38,4 @@ def primeNumbers(num): if __name__ == "__main__": num = int(input()) - primeNumbers(num) \ No newline at end of file + primeNumbers(num) From 41018c51e08b92785b4b3d4a8c2ee5fc7ab7c00c Mon Sep 17 00:00:00 2001 From: Shubham Lad <30789414+ShuLaPy@users.noreply.github.com> Date: Mon, 21 Oct 2019 23:30:52 +0530 Subject: [PATCH 3/3] name changed --- ...osthenesPrimeNumber.py => prime_sieve_eratosthenes.py} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename maths/{SieveOfEratosthenesPrimeNumber.py => prime_sieve_eratosthenes.py} (82%) diff --git a/maths/SieveOfEratosthenesPrimeNumber.py b/maths/prime_sieve_eratosthenes.py similarity index 82% rename from maths/SieveOfEratosthenesPrimeNumber.py rename to maths/prime_sieve_eratosthenes.py index a0df3b577b93..7d039aaadd7d 100644 --- a/maths/SieveOfEratosthenesPrimeNumber.py +++ b/maths/prime_sieve_eratosthenes.py @@ -11,13 +11,13 @@ https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes ''' -def primeNumbers(num): +def prime_sieve_eratosthenes(num): """ print the prime numbers upto n - >>> primeNumbers(10) + >>> prime_sieve_eratosthenes(10) 2 3 5 7 - >>> primeNumbers(20) + >>> prime_sieve_eratosthenes(20) 2 3 5 7 11 13 17 19 """ @@ -38,4 +38,4 @@ def primeNumbers(num): if __name__ == "__main__": num = int(input()) - primeNumbers(num) + prime_sieve_eratosthenes(num)