diff options
| author | Dave Jacoby <jacoby.david@gmail.com> | 2022-06-16 18:07:18 -0400 |
|---|---|---|
| committer | Dave Jacoby <jacoby.david@gmail.com> | 2022-06-16 18:07:18 -0400 |
| commit | e28b4f047990a21b3e98b4e7b6b9e21f499d388a (patch) | |
| tree | 39ed88bfdf9d2689042d534606601a19edc0bf9b /challenge-169/sgreen/python/ch-1.py | |
| parent | b9ec9ea5dac6ae173154732b1c3f997676f798b9 (diff) | |
| parent | 5c4b8df3cd8a191dd7c42fc49e12b5dfc3a02cc2 (diff) | |
| download | perlweeklychallenge-club-e28b4f047990a21b3e98b4e7b6b9e21f499d388a.tar.gz perlweeklychallenge-club-e28b4f047990a21b3e98b4e7b6b9e21f499d388a.tar.bz2 perlweeklychallenge-club-e28b4f047990a21b3e98b4e7b6b9e21f499d388a.zip | |
Merge branch 'master' of https://github.com/manwar/perlweeklychallenge-club
Diffstat (limited to 'challenge-169/sgreen/python/ch-1.py')
| -rwxr-xr-x | challenge-169/sgreen/python/ch-1.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/challenge-169/sgreen/python/ch-1.py b/challenge-169/sgreen/python/ch-1.py new file mode 100755 index 0000000000..dee277497c --- /dev/null +++ b/challenge-169/sgreen/python/ch-1.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 + +import math + + +def is_prime(number): + '''Return true or false if the number is a prime''' + if number < 2: + return False + + for i in range(2, int(math.sqrt(number)) + 1): + if number % i == 0: + return False + + # It's a prime + return True + + +def get_bril_nums(l): + '''Get all primes of length l''' + + primes = [] + for i in range(10**(l-1), 10**l): + if is_prime(i): + primes.append(i) + + # Calculate all brilliant numbers + bril_nums = [] + for i, v1 in enumerate(primes): + for v2 in primes[i:]: + bril_nums.append(v1*v2) + + # Return the sorted list + bril_nums.sort() + return bril_nums + + +def main(): + '''Find the first twenty brilliant numbers''' + l = 1 + bril_nums = [] + + # Keep increasing the length of primes until we have at least twenty + # solutions + while len(bril_nums) < 20: + bril_nums.extend(get_bril_nums(l)) + l += 1 + + # Print the first 20 numbers + print(*bril_nums[0:20], sep=', ') + + +if __name__ == '__main__': + main() |
