Project Euler solutions had MAIN: words which would leave values on the stack; add a new SOLUTION: parsing word now that MAIN: cannot do that

db4
Slava Pestov 2009-03-18 23:05:32 -05:00
parent 59ad8bc1fd
commit f995542246
81 changed files with 139 additions and 128 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -34,4 +34,4 @@ PRIVATE>
! [ euler004 ] 100 ave-time
! 1164 ms ave run time - 39.35 SD (100 trials)
MAIN: euler004
SOLUTION: euler004

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -86,4 +86,4 @@ PRIVATE>
! [ euler018a ] 100 ave-time
! 0 ms ave run time - 0.39 SD (100 trials)
MAIN: euler018a
SOLUTION: euler018a

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -42,4 +42,4 @@ PRIVATE>
! [ euler022 ] 100 ave-time
! 74 ms ave run time - 5.13 SD (100 trials)
MAIN: euler022
SOLUTION: euler022

View File

@ -58,4 +58,4 @@ PRIVATE>
! [ euler023 ] time
! 52780 ms run / 3839 ms GC
MAIN: euler023
SOLUTION: euler023

View File

@ -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

View File

@ -78,4 +78,4 @@ PRIVATE>
! [ euler025a ] 100 ave-time
! 0 ms ave run time - 0.17 SD (100 trials)
MAIN: euler025a
SOLUTION: euler025a

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -43,4 +43,4 @@ PRIVATE>
! [ euler030 ] 100 ave-time
! 1700 ms ave run time - 64.84 SD (100 trials)
MAIN: euler030
SOLUTION: euler030

View File

@ -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

View File

@ -75,4 +75,4 @@ PRIVATE>
! [ euler032a ] 10 ave-time
! 2624 ms ave run time - 131.91 SD (10 trials)
MAIN: euler032a
SOLUTION: euler032a

View File

@ -52,4 +52,4 @@ PRIVATE>
! [ euler033 ] 100 ave-time
! 7 ms ave run time - 1.31 SD (100 trials)
MAIN: euler033
SOLUTION: euler033

View File

@ -44,4 +44,4 @@ PRIVATE>
! [ euler034 ] 10 ave-time
! 5506 ms ave run time - 144.0 SD (10 trials)
MAIN: euler034
SOLUTION: euler034

View File

@ -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

View File

@ -36,4 +36,4 @@ PRIVATE>
! [ euler036 ] 100 ave-time
! 1703 ms ave run time - 96.6 SD (100 trials)
MAIN: euler036
SOLUTION: euler036

View File

@ -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

View File

@ -53,4 +53,4 @@ PRIVATE>
! [ euler038 ] 100 ave-time
! 11 ms ave run time - 1.5 SD (100 trials)
MAIN: euler038
SOLUTION: euler038

View File

@ -62,4 +62,4 @@ PRIVATE>
! [ euler039 ] 100 ave-time
! 1 ms ave run time - 0.37 SD (100 trials)
MAIN: euler039
SOLUTION: euler039

View File

@ -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

View File

@ -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

View File

@ -71,4 +71,4 @@ PRIVATE>
! [ euler042a ] 100 ave-time
! 21 ms ave run time - 2.2 SD (100 trials)
MAIN: euler042a
SOLUTION: euler042a

View File

@ -97,4 +97,4 @@ PRIVATE>
! [ euler043a ] 100 ave-time
! 10 ms ave run time - 1.37 SD (100 trials)
MAIN: euler043a
SOLUTION: euler043a

View File

@ -45,4 +45,4 @@ PRIVATE>
! TODO: this solution is ugly and not very efficient...find a better algorithm
MAIN: euler044
SOLUTION: euler044

View File

@ -46,4 +46,4 @@ PRIVATE>
! [ euler045 ] 100 ave-time
! 12 ms ave run time - 1.71 SD (100 trials)
MAIN: euler045
SOLUTION: euler045

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -87,4 +87,4 @@ PRIVATE>
! [ euler050 ] 100 ave-time
! 291 ms run / 20.6 ms GC ave time - 100 trials
MAIN: euler050
SOLUTION: euler050

View File

@ -49,4 +49,4 @@ PRIVATE>
! [ euler052 ] 100 ave-time
! 92 ms ave run time - 6.29 SD (100 trials)
MAIN: euler052
SOLUTION: euler052

View File

@ -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

View File

@ -66,4 +66,4 @@ PRIVATE>
! [ euler055 ] 100 ave-time
! 478 ms ave run time - 30.63 SD (100 trials)
MAIN: euler055
SOLUTION: euler055

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -59,4 +59,4 @@ PRIVATE>
! [ euler067a ] 100 ave-time
! 21 ms ave run time - 2.65 SD (100 trials)
MAIN: euler067a
SOLUTION: euler067a

View File

@ -46,4 +46,4 @@ PRIVATE>
! [ euler071 ] 100 ave-time
! 155 ms ave run time - 6.95 SD (100 trials)
MAIN: euler071
SOLUTION: euler071

View File

@ -49,4 +49,4 @@ PRIVATE>
! [ euler073 ] 10 ave-time
! 20506 ms ave run time - 937.07 SD (10 trials)
MAIN: euler073
SOLUTION: euler073

View File

@ -75,4 +75,4 @@ PRIVATE>
! [ euler075 ] 10 ave-time
! 3341 ms ave run timen - 157.77 SD (10 trials)
MAIN: euler075
SOLUTION: euler075

View File

@ -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

View File

@ -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

View File

@ -50,4 +50,4 @@ PRIVATE>
! TODO: this solution is not very efficient, much better optimizations exist
MAIN: euler092
SOLUTION: euler092

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -45,4 +45,4 @@ PRIVATE>
! [ euler134 ] 10 ave-time
! 933 ms ave run timen - 19.58 SD (10 trials)
MAIN: euler134
SOLUTION: euler134

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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