diff options
| author | mohammad khalid anwar <khalidanwar123@yahoo.com> | 2022-01-09 03:34:07 +0530 |
|---|---|---|
| committer | mohammad khalid anwar <khalidanwar123@yahoo.com> | 2022-01-09 03:34:07 +0530 |
| commit | 5d774188960c533ff59b4b9a42285b96f893f8c2 (patch) | |
| tree | c281530e9d5db212bd436b47122c5501c7444cee /challenge-146/khalid-anwar/python/ch-1.py | |
| parent | f2e062cd585f30ecbcf0257e72ccb8f0c82136a7 (diff) | |
| download | perlweeklychallenge-club-5d774188960c533ff59b4b9a42285b96f893f8c2.tar.gz perlweeklychallenge-club-5d774188960c533ff59b4b9a42285b96f893f8c2.tar.bz2 perlweeklychallenge-club-5d774188960c533ff59b4b9a42285b96f893f8c2.zip | |
10001st Prime Number
Diffstat (limited to 'challenge-146/khalid-anwar/python/ch-1.py')
| -rw-r--r-- | challenge-146/khalid-anwar/python/ch-1.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/challenge-146/khalid-anwar/python/ch-1.py b/challenge-146/khalid-anwar/python/ch-1.py new file mode 100644 index 0000000000..f5c05e61f5 --- /dev/null +++ b/challenge-146/khalid-anwar/python/ch-1.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +""" Returns the n-th prime number By Khalid Anwar +""" +def get_nth_prime_number(nth): + total_number_of_primes = 0 + factor = 2 + s = (nth * factor) + while total_number_of_primes < nth: + primes = make_prime(s) + total_number_of_primes = sum(primes[2:]) + factor += 1 + s = (nth * factor) + nth_prime_number = count_primes(primes, nth) + return nth_prime_number + +""" using the Sieve of Eratosthenes +""" +def make_prime(k): + prime = bytearray([1]*k) + for i in range(2, k): + if prime[i] == 1: + for j in range(i, k): + if i*j < k: + prime[i*j] = 0 + else: + break + return prime + +""" Returns the n-th prime +""" +def count_primes(primes, nth): + count = 0 + for k in range(2, len(primes)): + count += primes[k] + if count == nth: + return k + + +def main(): + NTH = 10001 + nth_prime_number = get_nth_prime_number(NTH) + print("The {}-th prime number is => {}".format(NTH, nth_prime_number)) + + +if __name__ == "__main__": + main()
\ No newline at end of file |
