faster number-length and some unit tests
parent
c1bc5f22e4
commit
79505168cf
|
@ -0,0 +1,17 @@
|
||||||
|
! Copyright (C) 2009 Doug Coleman.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: tools.test project-euler.common ;
|
||||||
|
IN: project-euler.common.tests
|
||||||
|
|
||||||
|
[ 4 ] [ -1000 number-length ] unit-test
|
||||||
|
[ 3 ] [ -999 number-length ] unit-test
|
||||||
|
[ 3 ] [ -100 number-length ] unit-test
|
||||||
|
[ 2 ] [ -99 number-length ] unit-test
|
||||||
|
[ 1 ] [ -9 number-length ] unit-test
|
||||||
|
[ 1 ] [ -1 number-length ] unit-test
|
||||||
|
[ 1 ] [ 0 number-length ] unit-test
|
||||||
|
[ 1 ] [ 9 number-length ] unit-test
|
||||||
|
[ 2 ] [ 99 number-length ] unit-test
|
||||||
|
[ 3 ] [ 100 number-length ] unit-test
|
||||||
|
[ 3 ] [ 999 number-length ] unit-test
|
||||||
|
[ 4 ] [ 1000 number-length ] unit-test
|
|
@ -76,7 +76,12 @@ PRIVATE>
|
||||||
[ dup 0 = not ] [ 10 /mod ] produce reverse nip ;
|
[ dup 0 = not ] [ 10 /mod ] produce reverse nip ;
|
||||||
|
|
||||||
: number-length ( n -- m )
|
: number-length ( n -- m )
|
||||||
log10 floor 1 + >integer ;
|
abs [
|
||||||
|
1
|
||||||
|
] [
|
||||||
|
1 0 [ 2over >= ]
|
||||||
|
[ [ 10 * ] [ 1 + ] bi* ] while 2nip
|
||||||
|
] if-zero ;
|
||||||
|
|
||||||
: nth-prime ( n -- n )
|
: nth-prime ( n -- n )
|
||||||
1 - lprimes lnth ;
|
1 - lprimes lnth ;
|
||||||
|
|
Loading…
Reference in New Issue