Project Euler - problem 57
parent
0182a3430d
commit
3fbb9f7081
|
@ -0,0 +1,43 @@
|
||||||
|
! Copyright (c) 2008 Samuel Tardieu
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: kernel math math.functions math.parser sequences ;
|
||||||
|
IN: project-euler.057
|
||||||
|
|
||||||
|
! http://projecteuler.net/index.php?section=problems&id=57
|
||||||
|
|
||||||
|
! DESCRIPTION
|
||||||
|
! -----------
|
||||||
|
|
||||||
|
! It is possible to show that the square root of two can be expressed
|
||||||
|
! as an infinite continued fraction.
|
||||||
|
|
||||||
|
! √ 2 = 1 + 1/(2 + 1/(2 + 1/(2 + ... ))) = 1.414213...
|
||||||
|
|
||||||
|
! By expanding this for the first four iterations, we get:
|
||||||
|
|
||||||
|
! 1 + 1/2 = 3/2 = 1.5
|
||||||
|
! 1 + 1/(2 + 1/2) = 7/5 = 1.4
|
||||||
|
! 1 + 1/(2 + 1/(2 + 1/2)) = 17/12 = 1.41666...
|
||||||
|
! 1 + 1/(2 + 1/(2 + 1/(2 + 1/2))) = 41/29 = 1.41379...
|
||||||
|
|
||||||
|
! The next three expansions are 99/70, 239/169, and 577/408, but the
|
||||||
|
! eighth expansion, 1393/985, is the first example where the number of
|
||||||
|
! digits in the numerator exceeds the number of digits in the
|
||||||
|
! denominator.
|
||||||
|
|
||||||
|
! In the first one-thousand expansions, how many fractions contain a
|
||||||
|
! numerator with more digits than denominator?
|
||||||
|
|
||||||
|
! SOLUTION
|
||||||
|
! --------
|
||||||
|
|
||||||
|
: longer-numerator? ( seq -- ? )
|
||||||
|
>fraction [ number>string length ] bi@ > ; inline
|
||||||
|
|
||||||
|
: euler057 ( -- answer )
|
||||||
|
0 1000 [ drop 2 + recip dup 1+ longer-numerator? ] count nip ;
|
||||||
|
|
||||||
|
! [ euler057 ] time
|
||||||
|
! 3.375118 seconds
|
||||||
|
|
||||||
|
MAIN: euler057
|
|
@ -15,13 +15,13 @@ USING: definitions io io.files io.pathnames kernel math math.parser
|
||||||
project-euler.041 project-euler.042 project-euler.043 project-euler.044
|
project-euler.041 project-euler.042 project-euler.043 project-euler.044
|
||||||
project-euler.045 project-euler.046 project-euler.047 project-euler.048
|
project-euler.045 project-euler.046 project-euler.047 project-euler.048
|
||||||
project-euler.052 project-euler.053 project-euler.055 project-euler.056
|
project-euler.052 project-euler.053 project-euler.055 project-euler.056
|
||||||
project-euler.059 project-euler.067 project-euler.071 project-euler.073
|
project-euler.057 project-euler.059 project-euler.067 project-euler.071
|
||||||
project-euler.075 project-euler.076 project-euler.079 project-euler.092
|
project-euler.073 project-euler.075 project-euler.076 project-euler.079
|
||||||
project-euler.097 project-euler.099 project-euler.100 project-euler.116
|
project-euler.092 project-euler.097 project-euler.099 project-euler.100
|
||||||
project-euler.117 project-euler.134 project-euler.148 project-euler.150
|
project-euler.116 project-euler.117 project-euler.134 project-euler.148
|
||||||
project-euler.151 project-euler.164 project-euler.169 project-euler.173
|
project-euler.150 project-euler.151 project-euler.164 project-euler.169
|
||||||
project-euler.175 project-euler.186 project-euler.190 project-euler.203
|
project-euler.173 project-euler.175 project-euler.186 project-euler.190
|
||||||
project-euler.215 ;
|
project-euler.203 project-euler.215 ;
|
||||||
IN: project-euler
|
IN: project-euler
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
Loading…
Reference in New Issue