blob: dee277497c3396d59d6f7413a4ea00cc7141f9fe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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()
|