diff options
| author | drbaggy <js5@sanger.ac.uk> | 2022-01-10 09:18:04 +0000 |
|---|---|---|
| committer | drbaggy <js5@sanger.ac.uk> | 2022-01-10 09:18:04 +0000 |
| commit | 54edabaf2afeb407d01d88c19d894823f85d5125 (patch) | |
| tree | 4e4a4fbda6b3023c3d3840a1daae50a49fca9c86 /challenge-146/khalid-anwar/python/ch-1.py | |
| parent | 29b9eeeb95555dbcf1f375c89910c83ac83abd8d (diff) | |
| parent | e9411bdc7658179af3f23d3ada7970323547a7d7 (diff) | |
| download | perlweeklychallenge-club-54edabaf2afeb407d01d88c19d894823f85d5125.tar.gz perlweeklychallenge-club-54edabaf2afeb407d01d88c19d894823f85d5125.tar.bz2 perlweeklychallenge-club-54edabaf2afeb407d01d88c19d894823f85d5125.zip | |
Merge remote-tracking branch 'upstream/master'
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..62e628bbdd --- /dev/null +++ b/challenge-146/khalid-anwar/python/ch-1.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +""" Returns the nth 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() |
