]> gitweb.factorcode.org Git - factor.git/commitdiff
Add project-euler.148
authorEric Mertens <emertens@gmail.com>
Sun, 20 Apr 2008 06:41:26 +0000 (23:41 -0700)
committerEric Mertens <emertens@gmail.com>
Sun, 20 Apr 2008 07:12:36 +0000 (00:12 -0700)
extra/project-euler/148/148.factor [new file with mode: 0644]

diff --git a/extra/project-euler/148/148.factor b/extra/project-euler/148/148.factor
new file mode 100644 (file)
index 0000000..daad89a
--- /dev/null
@@ -0,0 +1,24 @@
+! Copyright (c) 2008 Eric Mertens
+! See http://factorcode.org/license.txt for BSD license.
+USING: kernel math math.functions sequences sequences.lib ;
+
+IN: project-euler.148
+
+<PRIVATE
+
+: sum-1toN ( n -- sum )
+    dup 1+ * 2/ ; inline
+
+: >base7 ( x -- y )
+    [ dup 0 > ] [ 7 /mod ] [ ] unfold nip ;
+
+: (use-digit) ( prev x index -- next )
+    [ [ 1+ * ] [ sum-1toN 7 sum-1toN ] bi ] dip ^ * + ;
+
+PRIVATE>
+
+: (euler148) ( x -- y )
+    >base7 0 [ (use-digit) ] reduce-index ;
+
+: euler148 ( -- y )
+    10 9 ^ (euler148) ;