aboutsummaryrefslogtreecommitdiff
path: root/challenge-153/sgreen/python
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-153/sgreen/python')
-rwxr-xr-xchallenge-153/sgreen/python/ch-1.py13
-rwxr-xr-xchallenge-153/sgreen/python/ch-2.py17
2 files changed, 30 insertions, 0 deletions
diff --git a/challenge-153/sgreen/python/ch-1.py b/challenge-153/sgreen/python/ch-1.py
new file mode 100755
index 0000000000..453072fc92
--- /dev/null
+++ b/challenge-153/sgreen/python/ch-1.py
@@ -0,0 +1,13 @@
+#!/usr/bin/env python
+
+import math
+
+def main():
+ solutions = [1]
+ for i in range(1, 10):
+ solutions.append(solutions[-1]+math.factorial(i))
+
+ print(*solutions, sep=', ')
+
+if __name__ == '__main__':
+ main() \ No newline at end of file
diff --git a/challenge-153/sgreen/python/ch-2.py b/challenge-153/sgreen/python/ch-2.py
new file mode 100755
index 0000000000..3937a647c4
--- /dev/null
+++ b/challenge-153/sgreen/python/ch-2.py
@@ -0,0 +1,17 @@
+#!/usr/bin/env python
+
+import math
+import sys
+
+def main(n):
+ # Check we have an integer >= 0
+ num = int(n)
+ if num < 0:
+ raise ValueError("You must specify a non-negative integer")
+
+ # Get the sum of factorials of each digit
+ s = sum(math.factorial(int(x)) for x in n)
+ print('1' if s == num else 0)
+
+if __name__ == '__main__':
+ main(sys.argv[1]) \ No newline at end of file