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 ;
|
||||
|
||||
: number-length ( n -- m )
|
||||
log10 floor 1 + >integer ;
|
||||
abs [
|
||||
1
|
||||
] [
|
||||
1 0 [ 2over >= ]
|
||||
[ [ 10 * ] [ 1 + ] bi* ] while 2nip
|
||||
] if-zero ;
|
||||
|
||||
: nth-prime ( n -- n )
|
||||
1 - lprimes lnth ;
|
||||
|
|
Loading…
Reference in New Issue