Merge branch 'master' of git://factorcode.org/git/factor
commit
a3b7e08d45
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.ranges sequences ;
|
||||
USING: kernel math math.ranges sequences project-euler.common ;
|
||||
IN: project-euler.001
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=1
|
||||
|
@ -51,4 +51,4 @@ PRIVATE>
|
|||
! [ euler001b ] 100 ave-time
|
||||
! 0 ms run / 0 ms GC ave time - 100 trials
|
||||
|
||||
MAIN: euler001
|
||||
SOLUTION: euler001
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007, 2008 Aaron Schaefer, Alexander Solovyov, Vishal Talwar.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math sequences ;
|
||||
USING: kernel math sequences project-euler.common ;
|
||||
IN: project-euler.002
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=2
|
||||
|
@ -77,4 +77,4 @@ PRIVATE>
|
|||
! [ euler002b ] 100 ave-time
|
||||
! 0 ms ave run time - 0.0 SD (100 trials)
|
||||
|
||||
MAIN: euler002b
|
||||
SOLUTION: euler002b
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: math.primes.factors sequences ;
|
||||
USING: math.primes.factors sequences project-euler.common ;
|
||||
IN: project-euler.003
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=3
|
||||
|
@ -22,4 +22,4 @@ IN: project-euler.003
|
|||
! [ euler003 ] 100 ave-time
|
||||
! 1 ms ave run time - 0.49 SD (100 trials)
|
||||
|
||||
MAIN: euler003
|
||||
SOLUTION: euler003
|
||||
|
|
|
@ -34,4 +34,4 @@ PRIVATE>
|
|||
! [ euler004 ] 100 ave-time
|
||||
! 1164 ms ave run time - 39.35 SD (100 trials)
|
||||
|
||||
MAIN: euler004
|
||||
SOLUTION: euler004
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: math math.functions sequences ;
|
||||
USING: math math.functions sequences project-euler.common ;
|
||||
IN: project-euler.005
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=5
|
||||
|
@ -23,4 +23,4 @@ IN: project-euler.005
|
|||
! [ euler005 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.14 SD (100 trials)
|
||||
|
||||
MAIN: euler005
|
||||
SOLUTION: euler005
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007, 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.ranges sequences ;
|
||||
USING: kernel math math.ranges sequences project-euler.common ;
|
||||
IN: project-euler.006
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=6
|
||||
|
@ -40,4 +40,4 @@ PRIVATE>
|
|||
! [ euler006 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.24 SD (100 trials)
|
||||
|
||||
MAIN: euler006
|
||||
SOLUTION: euler006
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: lists math math.primes.lists ;
|
||||
USING: lists math math.primes.lists project-euler.common ;
|
||||
IN: project-euler.007
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=7
|
||||
|
@ -26,4 +26,4 @@ IN: project-euler.007
|
|||
! [ euler007 ] 100 ave-time
|
||||
! 5 ms ave run time - 1.13 SD (100 trials)
|
||||
|
||||
MAIN: euler007
|
||||
SOLUTION: euler007
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007, 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: grouping math.order math.parser sequences ;
|
||||
USING: grouping math.order math.parser sequences project-euler.common ;
|
||||
IN: project-euler.008
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=8
|
||||
|
@ -69,4 +69,4 @@ PRIVATE>
|
|||
! [ euler008 ] 100 ave-time
|
||||
! 2 ms ave run time - 0.79 SD (100 trials)
|
||||
|
||||
MAIN: euler008
|
||||
SOLUTION: euler008
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007, 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel make math sequences sorting ;
|
||||
USING: kernel make math sequences sorting project-euler.common ;
|
||||
IN: project-euler.009
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=9
|
||||
|
@ -50,4 +50,4 @@ PRIVATE>
|
|||
! [ euler009 ] 100 ave-time
|
||||
! 1 ms ave run time - 0.73 SD (100 trials)
|
||||
|
||||
MAIN: euler009
|
||||
SOLUTION: euler009
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007 Aaron Schaefer, Samuel Tardieu.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: math.primes sequences ;
|
||||
USING: math.primes sequences project-euler.common ;
|
||||
IN: project-euler.010
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=10
|
||||
|
@ -22,4 +22,4 @@ IN: project-euler.010
|
|||
! [ euler010 ] 100 ave-time
|
||||
! 15 ms ave run time - 0.41 SD (100 trials)
|
||||
|
||||
MAIN: euler010
|
||||
SOLUTION: euler010
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007, 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: grouping kernel make math.order sequences ;
|
||||
USING: grouping kernel make math.order sequences project-euler.common ;
|
||||
IN: project-euler.011
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=11
|
||||
|
@ -101,4 +101,4 @@ PRIVATE>
|
|||
! [ euler011 ] 100 ave-time
|
||||
! 3 ms ave run time - 0.77 SD (100 trials)
|
||||
|
||||
MAIN: euler011
|
||||
SOLUTION: euler011
|
||||
|
|
|
@ -39,4 +39,4 @@ IN: project-euler.012
|
|||
! [ euler012 ] 10 ave-time
|
||||
! 6573 ms ave run time - 346.27 SD (10 trials)
|
||||
|
||||
MAIN: euler012
|
||||
SOLUTION: euler012
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: math.parser sequences ;
|
||||
USING: math.parser sequences project-euler.common ;
|
||||
IN: project-euler.013
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=13
|
||||
|
@ -230,4 +230,4 @@ PRIVATE>
|
|||
! [ euler013 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.31 SD (100 trials)
|
||||
|
||||
MAIN: euler013
|
||||
SOLUTION: euler013
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
! Copyright (c) 2007 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: combinators.short-circuit kernel make math math.ranges sequences ;
|
||||
USING: combinators.short-circuit kernel make math math.ranges
|
||||
sequences project-euler.common ;
|
||||
IN: project-euler.014
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=14
|
||||
|
@ -72,4 +73,4 @@ PRIVATE>
|
|||
|
||||
! TODO: try using memoization
|
||||
|
||||
MAIN: euler014a
|
||||
SOLUTION: euler014a
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.combinatorics ;
|
||||
USING: kernel math math.combinatorics project-euler.common ;
|
||||
IN: project-euler.015
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=15
|
||||
|
@ -30,4 +30,4 @@ PRIVATE>
|
|||
! [ euler015 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.2 SD (100 trials)
|
||||
|
||||
MAIN: euler015
|
||||
SOLUTION: euler015
|
||||
|
|
|
@ -22,4 +22,4 @@ IN: project-euler.016
|
|||
! [ euler016 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.67 SD (100 trials)
|
||||
|
||||
MAIN: euler016
|
||||
SOLUTION: euler016
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
! Copyright (c) 2007, 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: ascii kernel math.ranges math.text.english sequences ;
|
||||
USING: ascii kernel math.ranges math.text.english sequences
|
||||
project-euler.common ;
|
||||
IN: project-euler.017
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=17
|
||||
|
@ -28,4 +29,4 @@ IN: project-euler.017
|
|||
! [ euler017 ] 100 ave-time
|
||||
! 15 ms ave run time - 1.71 SD (100 trials)
|
||||
|
||||
MAIN: euler017
|
||||
SOLUTION: euler017
|
||||
|
|
|
@ -86,4 +86,4 @@ PRIVATE>
|
|||
! [ euler018a ] 100 ave-time
|
||||
! 0 ms ave run time - 0.39 SD (100 trials)
|
||||
|
||||
MAIN: euler018a
|
||||
SOLUTION: euler018a
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (c) 2007 Samuel Tardieu, Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: calendar combinators kernel math math.ranges namespaces sequences
|
||||
math.order ;
|
||||
math.order project-euler.common ;
|
||||
IN: project-euler.019
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=19
|
||||
|
@ -63,4 +63,4 @@ PRIVATE>
|
|||
! [ euler019a ] 100 ave-time
|
||||
! 17 ms ave run time - 2.13 SD (100 trials)
|
||||
|
||||
MAIN: euler019
|
||||
SOLUTION: euler019
|
||||
|
|
|
@ -22,4 +22,4 @@ IN: project-euler.020
|
|||
! [ euler020 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.55 (100 trials)
|
||||
|
||||
MAIN: euler020
|
||||
SOLUTION: euler020
|
||||
|
|
|
@ -35,4 +35,4 @@ IN: project-euler.021
|
|||
! [ euler021 ] 100 ave-time
|
||||
! 335 ms ave run time - 18.63 SD (100 trials)
|
||||
|
||||
MAIN: euler021
|
||||
SOLUTION: euler021
|
||||
|
|
|
@ -42,4 +42,4 @@ PRIVATE>
|
|||
! [ euler022 ] 100 ave-time
|
||||
! 74 ms ave run time - 5.13 SD (100 trials)
|
||||
|
||||
MAIN: euler022
|
||||
SOLUTION: euler022
|
||||
|
|
|
@ -58,4 +58,4 @@ PRIVATE>
|
|||
! [ euler023 ] time
|
||||
! 52780 ms run / 3839 ms GC
|
||||
|
||||
MAIN: euler023
|
||||
SOLUTION: euler023
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math.combinatorics math.parser ;
|
||||
USING: kernel math.combinatorics math.parser project-euler.common ;
|
||||
IN: project-euler.024
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=24
|
||||
|
@ -28,4 +28,4 @@ IN: project-euler.024
|
|||
! [ euler024 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.27 SD (100 trials)
|
||||
|
||||
MAIN: euler024
|
||||
SOLUTION: euler024
|
||||
|
|
|
@ -78,4 +78,4 @@ PRIVATE>
|
|||
! [ euler025a ] 100 ave-time
|
||||
! 0 ms ave run time - 0.17 SD (100 trials)
|
||||
|
||||
MAIN: euler025a
|
||||
SOLUTION: euler025a
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.functions math.primes math.ranges sequences ;
|
||||
USING: kernel math math.functions math.primes math.ranges sequences project-euler.common ;
|
||||
IN: project-euler.026
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=26
|
||||
|
@ -68,4 +68,4 @@ PRIVATE>
|
|||
! [ euler026 ] 100 ave-time
|
||||
! 290 ms ave run time - 19.2 SD (100 trials)
|
||||
|
||||
MAIN: euler026
|
||||
SOLUTION: euler026
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.primes project-euler.common sequences ;
|
||||
USING: kernel math math.primes project-euler.common sequences
|
||||
project-euler.common ;
|
||||
IN: project-euler.027
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=27
|
||||
|
@ -72,4 +73,4 @@ PRIVATE>
|
|||
|
||||
! TODO: generalize max-consecutive/max-product (from #26) into a new word
|
||||
|
||||
MAIN: euler027
|
||||
SOLUTION: euler027
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.ranges sequences ;
|
||||
USING: kernel math math.ranges sequences project-euler.common ;
|
||||
IN: project-euler.028
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=28
|
||||
|
@ -43,4 +43,4 @@ PRIVATE>
|
|||
! [ euler028 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.39 SD (100 trials)
|
||||
|
||||
MAIN: euler028
|
||||
SOLUTION: euler028
|
||||
|
|
|
@ -34,4 +34,4 @@ IN: project-euler.029
|
|||
! [ euler029 ] 100 ave-time
|
||||
! 704 ms ave run time - 28.07 SD (100 trials)
|
||||
|
||||
MAIN: euler029
|
||||
SOLUTION: euler029
|
||||
|
|
|
@ -43,4 +43,4 @@ PRIVATE>
|
|||
! [ euler030 ] 100 ave-time
|
||||
! 1700 ms ave run time - 64.84 SD (100 trials)
|
||||
|
||||
MAIN: euler030
|
||||
SOLUTION: euler030
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math ;
|
||||
USING: kernel math project-euler.common ;
|
||||
IN: project-euler.031
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=31
|
||||
|
@ -60,4 +60,4 @@ PRIVATE>
|
|||
|
||||
! TODO: generalize to eliminate duplication; use a sequence to specify denominations?
|
||||
|
||||
MAIN: euler031
|
||||
SOLUTION: euler031
|
||||
|
|
|
@ -75,4 +75,4 @@ PRIVATE>
|
|||
! [ euler032a ] 10 ave-time
|
||||
! 2624 ms ave run time - 131.91 SD (10 trials)
|
||||
|
||||
MAIN: euler032a
|
||||
SOLUTION: euler032a
|
||||
|
|
|
@ -52,4 +52,4 @@ PRIVATE>
|
|||
! [ euler033 ] 100 ave-time
|
||||
! 7 ms ave run time - 1.31 SD (100 trials)
|
||||
|
||||
MAIN: euler033
|
||||
SOLUTION: euler033
|
||||
|
|
|
@ -44,4 +44,4 @@ PRIVATE>
|
|||
! [ euler034 ] 10 ave-time
|
||||
! 5506 ms ave run time - 144.0 SD (10 trials)
|
||||
|
||||
MAIN: euler034
|
||||
SOLUTION: euler034
|
||||
|
|
|
@ -58,4 +58,4 @@ PRIVATE>
|
|||
! TODO: try using bit arrays or other methods outlined here:
|
||||
! http://home.comcast.net/~babdulbaki/Circular_Primes.html
|
||||
|
||||
MAIN: euler035
|
||||
SOLUTION: euler035
|
||||
|
|
|
@ -36,4 +36,4 @@ PRIVATE>
|
|||
! [ euler036 ] 100 ave-time
|
||||
! 1703 ms ave run time - 96.6 SD (100 trials)
|
||||
|
||||
MAIN: euler036
|
||||
SOLUTION: euler036
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.parser math.primes sequences ;
|
||||
USING: kernel math math.parser math.primes sequences project-euler.common ;
|
||||
IN: project-euler.037
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=37
|
||||
|
@ -49,4 +49,4 @@ PRIVATE>
|
|||
! [ euler037 ] 100 ave-time
|
||||
! 130 ms ave run time - 6.27 SD (100 trials)
|
||||
|
||||
MAIN: euler037
|
||||
SOLUTION: euler037
|
||||
|
|
|
@ -53,4 +53,4 @@ PRIVATE>
|
|||
! [ euler038 ] 100 ave-time
|
||||
! 11 ms ave run time - 1.5 SD (100 trials)
|
||||
|
||||
MAIN: euler038
|
||||
SOLUTION: euler038
|
||||
|
|
|
@ -62,4 +62,4 @@ PRIVATE>
|
|||
! [ euler039 ] 100 ave-time
|
||||
! 1 ms ave run time - 0.37 SD (100 trials)
|
||||
|
||||
MAIN: euler039
|
||||
SOLUTION: euler039
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.parser sequences strings ;
|
||||
USING: kernel math math.parser sequences strings project-euler.common ;
|
||||
IN: project-euler.040
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=40
|
||||
|
@ -48,4 +48,4 @@ PRIVATE>
|
|||
! [ euler040 ] 100 ave-time
|
||||
! 444 ms ave run time - 23.64 SD (100 trials)
|
||||
|
||||
MAIN: euler040
|
||||
SOLUTION: euler040
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math.combinatorics math.parser math.primes sequences ;
|
||||
USING: kernel math.combinatorics math.parser math.primes sequences project-euler.common ;
|
||||
IN: project-euler.041
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=41
|
||||
|
@ -37,4 +37,4 @@ IN: project-euler.041
|
|||
! [ euler041 ] 100 ave-time
|
||||
! 64 ms ave run time - 4.22 SD (100 trials)
|
||||
|
||||
MAIN: euler041
|
||||
SOLUTION: euler041
|
||||
|
|
|
@ -71,4 +71,4 @@ PRIVATE>
|
|||
! [ euler042a ] 100 ave-time
|
||||
! 21 ms ave run time - 2.2 SD (100 trials)
|
||||
|
||||
MAIN: euler042a
|
||||
SOLUTION: euler042a
|
||||
|
|
|
@ -97,4 +97,4 @@ PRIVATE>
|
|||
! [ euler043a ] 100 ave-time
|
||||
! 10 ms ave run time - 1.37 SD (100 trials)
|
||||
|
||||
MAIN: euler043a
|
||||
SOLUTION: euler043a
|
||||
|
|
|
@ -45,4 +45,4 @@ PRIVATE>
|
|||
|
||||
! TODO: this solution is ugly and not very efficient...find a better algorithm
|
||||
|
||||
MAIN: euler044
|
||||
SOLUTION: euler044
|
||||
|
|
|
@ -46,4 +46,4 @@ PRIVATE>
|
|||
! [ euler045 ] 100 ave-time
|
||||
! 12 ms ave run time - 1.71 SD (100 trials)
|
||||
|
||||
MAIN: euler045
|
||||
SOLUTION: euler045
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.functions math.primes math.ranges sequences ;
|
||||
USING: kernel math math.functions math.primes math.ranges sequences project-euler.common ;
|
||||
IN: project-euler.046
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=46
|
||||
|
@ -49,4 +49,4 @@ PRIVATE>
|
|||
! [ euler046 ] 100 ave-time
|
||||
! 37 ms ave run time - 3.39 SD (100 trials)
|
||||
|
||||
MAIN: euler046
|
||||
SOLUTION: euler046
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays kernel math math.primes math.primes.factors
|
||||
math.ranges namespaces sequences ;
|
||||
math.ranges namespaces sequences project-euler.common ;
|
||||
IN: project-euler.047
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=47
|
||||
|
@ -93,4 +93,4 @@ PRIVATE>
|
|||
! TODO: I don't like that you have to specify the upper bound, maybe try making
|
||||
! this lazy so it could also short-circuit when it finds the answer?
|
||||
|
||||
MAIN: euler047a
|
||||
SOLUTION: euler047a
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.functions sequences ;
|
||||
USING: kernel math math.functions sequences project-euler.common ;
|
||||
IN: project-euler.048
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=48
|
||||
|
@ -22,4 +22,4 @@ IN: project-euler.048
|
|||
! [ euler048 ] 100 ave-time
|
||||
! 276 ms run / 1 ms GC ave time - 100 trials
|
||||
|
||||
MAIN: euler048
|
||||
SOLUTION: euler048
|
||||
|
|
|
@ -87,4 +87,4 @@ PRIVATE>
|
|||
! [ euler050 ] 100 ave-time
|
||||
! 291 ms run / 20.6 ms GC ave time - 100 trials
|
||||
|
||||
MAIN: euler050
|
||||
SOLUTION: euler050
|
||||
|
|
|
@ -49,4 +49,4 @@ PRIVATE>
|
|||
! [ euler052 ] 100 ave-time
|
||||
! 92 ms ave run time - 6.29 SD (100 trials)
|
||||
|
||||
MAIN: euler052
|
||||
SOLUTION: euler052
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.combinatorics math.ranges sequences ;
|
||||
USING: kernel math math.combinatorics math.ranges sequences project-euler.common ;
|
||||
IN: project-euler.053
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=53
|
||||
|
@ -32,4 +32,4 @@ IN: project-euler.053
|
|||
! [ euler053 ] 100 ave-time
|
||||
! 52 ms ave run time - 4.44 SD (100 trials)
|
||||
|
||||
MAIN: euler053
|
||||
SOLUTION: euler053
|
||||
|
|
|
@ -66,4 +66,4 @@ PRIVATE>
|
|||
! [ euler055 ] 100 ave-time
|
||||
! 478 ms ave run time - 30.63 SD (100 trials)
|
||||
|
||||
MAIN: euler055
|
||||
SOLUTION: euler055
|
||||
|
|
|
@ -29,4 +29,4 @@ IN: project-euler.056
|
|||
! [ euler056 ] 100 ave-time
|
||||
! 22 ms ave run time - 2.13 SD (100 trials)
|
||||
|
||||
MAIN: euler056
|
||||
SOLUTION: euler056
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Samuel Tardieu
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.functions math.parser sequences ;
|
||||
USING: kernel math math.functions math.parser sequences project-euler.common ;
|
||||
IN: project-euler.057
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=57
|
||||
|
@ -40,4 +40,4 @@ IN: project-euler.057
|
|||
! [ euler057 ] time
|
||||
! 3.375118 seconds
|
||||
|
||||
MAIN: euler057
|
||||
SOLUTION: euler057
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays ascii assocs hashtables io.encodings.ascii io.files kernel math
|
||||
math.parser namespaces make sequences sequences.private sorting
|
||||
splitting grouping strings sets accessors ;
|
||||
splitting grouping strings sets accessors project-euler.common ;
|
||||
IN: project-euler.059
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=59
|
||||
|
@ -89,4 +89,4 @@ PRIVATE>
|
|||
! [ euler059 ] 100 ave-time
|
||||
! 8 ms ave run time - 1.4 SD (100 trials)
|
||||
|
||||
MAIN: euler059
|
||||
SOLUTION: euler059
|
||||
|
|
|
@ -59,4 +59,4 @@ PRIVATE>
|
|||
! [ euler067a ] 100 ave-time
|
||||
! 21 ms ave run time - 2.65 SD (100 trials)
|
||||
|
||||
MAIN: euler067a
|
||||
SOLUTION: euler067a
|
||||
|
|
|
@ -46,4 +46,4 @@ PRIVATE>
|
|||
! [ euler071 ] 100 ave-time
|
||||
! 155 ms ave run time - 6.95 SD (100 trials)
|
||||
|
||||
MAIN: euler071
|
||||
SOLUTION: euler071
|
||||
|
|
|
@ -49,4 +49,4 @@ PRIVATE>
|
|||
! [ euler073 ] 10 ave-time
|
||||
! 20506 ms ave run time - 937.07 SD (10 trials)
|
||||
|
||||
MAIN: euler073
|
||||
SOLUTION: euler073
|
||||
|
|
|
@ -75,4 +75,4 @@ PRIVATE>
|
|||
! [ euler075 ] 10 ave-time
|
||||
! 3341 ms ave run timen - 157.77 SD (10 trials)
|
||||
|
||||
MAIN: euler075
|
||||
SOLUTION: euler075
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays assocs kernel locals math math.order math.ranges sequences ;
|
||||
USING: arrays assocs kernel locals math math.order math.ranges sequences project-euler.common ;
|
||||
IN: project-euler.076
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=76
|
||||
|
@ -56,4 +56,4 @@ PRIVATE>
|
|||
! [ euler076 ] 100 ave-time
|
||||
! 560 ms ave run time - 17.74 SD (100 trials)
|
||||
|
||||
MAIN: euler076
|
||||
SOLUTION: euler076
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: assocs io.encodings.ascii io.files kernel make math math.parser
|
||||
sequences sets ;
|
||||
sequences sets project-euler.common ;
|
||||
IN: project-euler.079
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=79
|
||||
|
@ -63,4 +63,4 @@ PRIVATE>
|
|||
! TODO: prune and diff are relatively slow; topological sort could be
|
||||
! cleaned up and generalized much better, but it works for this problem
|
||||
|
||||
MAIN: euler079
|
||||
SOLUTION: euler079
|
||||
|
|
|
@ -50,4 +50,4 @@ PRIVATE>
|
|||
|
||||
! TODO: this solution is not very efficient, much better optimizations exist
|
||||
|
||||
MAIN: euler092
|
||||
SOLUTION: euler092
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: math math.functions ;
|
||||
USING: math math.functions project-euler.common ;
|
||||
IN: project-euler.097
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=97
|
||||
|
@ -28,4 +28,4 @@ IN: project-euler.097
|
|||
! [ euler097 ] 100 ave-time
|
||||
! 0 ms ave run timen - 0.22 SD (100 trials)
|
||||
|
||||
MAIN: euler097
|
||||
SOLUTION: euler097
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (c) 2008 Aaron Schaefer.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: io.encodings.ascii io.files kernel math math.functions math.parser
|
||||
math.vectors sequences splitting ;
|
||||
math.vectors sequences splitting project-euler.common ;
|
||||
IN: project-euler.099
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=99
|
||||
|
@ -49,4 +49,4 @@ PRIVATE>
|
|||
! [ euler099 ] 100 ave-time
|
||||
! 16 ms ave run timen - 1.67 SD (100 trials)
|
||||
|
||||
MAIN: euler099
|
||||
SOLUTION: euler099
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.functions sequences ;
|
||||
USING: kernel math math.functions sequences project-euler.common ;
|
||||
IN: project-euler.100
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=100
|
||||
|
@ -33,4 +33,4 @@ IN: project-euler.100
|
|||
! [ euler100 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.14 SD (100 trials)
|
||||
|
||||
MAIN: euler100
|
||||
SOLUTION: euler100
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.ranges sequences ;
|
||||
USING: kernel math math.ranges sequences project-euler.common ;
|
||||
IN: project-euler.116
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=116
|
||||
|
@ -57,4 +57,4 @@ PRIVATE>
|
|||
! [ euler116 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.34 SD (100 trials)
|
||||
|
||||
MAIN: euler116
|
||||
SOLUTION: euler116
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.order sequences splitting ;
|
||||
USING: kernel math math.order sequences splitting project-euler.common ;
|
||||
IN: project-euler.117
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=117
|
||||
|
@ -41,4 +41,4 @@ PRIVATE>
|
|||
! [ euler117 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.29 SD (100 trials)
|
||||
|
||||
MAIN: euler117
|
||||
SOLUTION: euler117
|
||||
|
|
|
@ -45,4 +45,4 @@ PRIVATE>
|
|||
! [ euler134 ] 10 ave-time
|
||||
! 933 ms ave run timen - 19.58 SD (10 trials)
|
||||
|
||||
MAIN: euler134
|
||||
SOLUTION: euler134
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.functions sequences ;
|
||||
USING: kernel math math.functions sequences project-euler.common ;
|
||||
IN: project-euler.148
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=148
|
||||
|
@ -51,4 +51,4 @@ PRIVATE>
|
|||
! [ euler148 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.17 SD (100 trials)
|
||||
|
||||
MAIN: euler148
|
||||
SOLUTION: euler148
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: hints kernel locals math math.order sequences sequences.private ;
|
||||
USING: hints kernel locals math math.order sequences sequences.private project-euler.common ;
|
||||
IN: project-euler.150
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=150
|
||||
|
@ -75,4 +75,4 @@ PRIVATE>
|
|||
! [ euler150 ] 10 ave-time
|
||||
! 30208 ms ave run time - 593.45 SD (10 trials)
|
||||
|
||||
MAIN: euler150
|
||||
SOLUTION: euler150
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: assocs combinators kernel math math.order namespaces sequences ;
|
||||
USING: assocs combinators kernel math math.order namespaces sequences project-euler.common ;
|
||||
IN: project-euler.151
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=151
|
||||
|
@ -76,4 +76,4 @@ DEFER: (euler151)
|
|||
! [ euler151 ] 100 ave-time
|
||||
! ? ms run time - 100 trials
|
||||
|
||||
MAIN: euler151
|
||||
SOLUTION: euler151
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays assocs kernel math math.ranges sequences ;
|
||||
USING: arrays assocs kernel math math.ranges sequences project-euler.common ;
|
||||
IN: project-euler.164
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=164
|
||||
|
@ -35,4 +35,4 @@ PRIVATE>
|
|||
! [ euler164 ] 100 ave-time
|
||||
! 7 ms ave run time - 1.23 SD (100 trials)
|
||||
|
||||
MAIN: euler164
|
||||
SOLUTION: euler164
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (c) 2007 Samuel Tardieu.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
IN: project-euler.169
|
||||
USING: combinators kernel math math.functions memoize ;
|
||||
USING: combinators kernel math math.functions memoize project-euler.common ;
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=169
|
||||
|
||||
|
@ -39,4 +39,4 @@ MEMO: fn ( n -- x )
|
|||
! [ euler169 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.2 SD (100 trials)
|
||||
|
||||
MAIN: euler169
|
||||
SOLUTION: euler169
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007 Samuel Tardieu.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel math math.functions math.ranges sequences ;
|
||||
USING: kernel math math.functions math.ranges sequences project-euler.common ;
|
||||
IN: project-euler.173
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=173
|
||||
|
@ -35,4 +35,4 @@ PRIVATE>
|
|||
! [ euler173 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.35 SD (100 trials)
|
||||
|
||||
MAIN: euler173
|
||||
SOLUTION: euler173
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2007 Samuel Tardieu.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: combinators kernel math math.parser math.ranges sequences vectors ;
|
||||
USING: combinators kernel math math.parser math.ranges sequences vectors project-euler.common ;
|
||||
IN: project-euler.175
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=175
|
||||
|
@ -55,4 +55,4 @@ PRIVATE>
|
|||
! [ euler175 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.31 SD (100 trials)
|
||||
|
||||
MAIN: euler175
|
||||
SOLUTION: euler175
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: circular disjoint-sets kernel math math.ranges sequences ;
|
||||
USING: circular disjoint-sets kernel math math.ranges sequences project-euler.common ;
|
||||
IN: project-euler.186
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=186
|
||||
|
@ -73,4 +73,4 @@ IN: project-euler.186
|
|||
! [ euler186 ] 10 ave-time
|
||||
! 18572 ms ave run time - 796.87 SD (10 trials)
|
||||
|
||||
MAIN: euler186
|
||||
SOLUTION: euler186
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel sequences math math.functions math.ranges locals ;
|
||||
USING: kernel sequences math math.functions math.ranges locals project-euler.common ;
|
||||
IN: project-euler.190
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=190
|
||||
|
@ -51,4 +51,4 @@ PRIVATE>
|
|||
! [ euler150 ] 100 ave-time
|
||||
! 5 ms ave run time - 1.01 SD (100 trials)
|
||||
|
||||
MAIN: euler190
|
||||
SOLUTION: euler190
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: fry kernel math math.primes.factors sequences sets ;
|
||||
USING: fry kernel math math.primes.factors sequences sets project-euler.common ;
|
||||
IN: project-euler.203
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=203
|
||||
|
@ -61,4 +61,4 @@ PRIVATE>
|
|||
! [ euler203 ] 100 ave-time
|
||||
! 12 ms ave run time - 1.6 SD (100 trials)
|
||||
|
||||
MAIN: euler203
|
||||
SOLUTION: euler203
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors kernel locals math ;
|
||||
USING: accessors kernel locals math project-euler.common ;
|
||||
IN: project-euler.215
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=215
|
||||
|
@ -89,4 +89,4 @@ PRIVATE>
|
|||
! [ euler215 ] 100 ave-time
|
||||
! 208 ms ave run time - 9.06 SD (100 trials)
|
||||
|
||||
MAIN: euler215
|
||||
SOLUTION: euler215
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays kernel make math math.functions math.matrices math.miller-rabin
|
||||
math.order math.parser math.primes.factors math.ranges math.ratios
|
||||
sequences sorting strings unicode.case ;
|
||||
sequences sorting strings unicode.case parser accessors vocabs.parser
|
||||
namespaces vocabs words quotations prettyprint ;
|
||||
IN: project-euler.common
|
||||
|
||||
! A collection of words used by more than one Project Euler solution
|
||||
|
@ -127,3 +128,10 @@ PRIVATE>
|
|||
: d-transform ( triple -- new-triple )
|
||||
{ { -1 -2 -2 } { 2 1 2 } { 2 2 3 } } transform ;
|
||||
|
||||
: SOLUTION:
|
||||
scan-word
|
||||
[ name>> "-main" append create-in ] keep
|
||||
[ drop in get vocab (>>main) ]
|
||||
[ [ . ] swap prefix (( -- )) define-declared ]
|
||||
2bi ; parsing
|
||||
|
||||
|
|
|
@ -44,8 +44,8 @@ PRIVATE>
|
|||
|
||||
: run-project-euler ( -- )
|
||||
problem-prompt dup problem-solved? [
|
||||
"Answer: " write
|
||||
dup number>euler "project-euler." prepend run
|
||||
"Answer: " write dup number? [ number>string ] when print
|
||||
"Source: " write solution-path .
|
||||
] [
|
||||
drop "That problem has not been solved yet..." print
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: db.tuples locals site-watcher site-watcher.db
|
||||
site-watcher.private kernel db io.directories io.files.temp
|
||||
continuations ;
|
||||
continuations db.sqlite site-watcher.db.private ;
|
||||
IN: site-watcher.tests
|
||||
|
||||
: site-watcher-path ( -- path ) "site-watcher.db" temp-file ; inline
|
||||
|
|
Loading…
Reference in New Issue