aboutsummaryrefslogtreecommitdiff
path: root/challenge-172/sgreen/python/ch-1.py
diff options
context:
space:
mode:
authorSimon Green <mail@simon.green>2022-07-10 20:34:06 +1000
committerSimon Green <mail@simon.green>2022-07-10 20:34:06 +1000
commit72aca2620e73ef772c725fd927e56960ef2fa964 (patch)
treec0ffce8d23c68b41920308ea78585894726f4884 /challenge-172/sgreen/python/ch-1.py
parent0359ead5987568ba01e6a3977aee9406f9b90818 (diff)
downloadperlweeklychallenge-club-72aca2620e73ef772c725fd927e56960ef2fa964.tar.gz
perlweeklychallenge-club-72aca2620e73ef772c725fd927e56960ef2fa964.tar.bz2
perlweeklychallenge-club-72aca2620e73ef772c725fd927e56960ef2fa964.zip
sgreen solutions to challenge 172
Diffstat (limited to 'challenge-172/sgreen/python/ch-1.py')
-rwxr-xr-xchallenge-172/sgreen/python/ch-1.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/challenge-172/sgreen/python/ch-1.py b/challenge-172/sgreen/python/ch-1.py
new file mode 100755
index 0000000000..125ec64815
--- /dev/null
+++ b/challenge-172/sgreen/python/ch-1.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+
+import sys
+import math
+from itertools import combinations
+
+
+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 main(m, n):
+ # Retrieve a list of all prime numbers <= m
+ primes = [x for x in range(m, 1, -1) if is_prime(x)]
+
+ # Go through each combination of n length, and see if we have a solution
+ for l in combinations(primes, n):
+ if sum(l) == m:
+ print(l, sep=', ')
+ return
+
+ # It is possible that no solution is found
+ print('No solution!')
+
+
+if __name__ == '__main__':
+ main(int(sys.argv[1]), int(sys.argv[2]))