summaryrefslogtreecommitdiff
path: root/euler20.scm
diff options
context:
space:
mode:
Diffstat (limited to 'euler20.scm')
-rw-r--r--euler20.scm16
1 files changed, 16 insertions, 0 deletions
diff --git a/euler20.scm b/euler20.scm
new file mode 100644
index 0000000..df06c9d
--- /dev/null
+++ b/euler20.scm
@@ -0,0 +1,16 @@
+(define (sum-digits n)
+ (if (= n 0)
+ 0
+ (+ (remainder n 10)
+ (sum-digits (floor (/ n 10))))))
+
+(define (! n)
+ (define (p-iter i p)
+ (if (> i n)
+ p
+ (p-iter (+ i 1) (* p i))))
+ (p-iter 1 1))
+
+(display (sum-digits (! 100)))
+(newline)
+