Restructuring
This commit is contained in:
23
solutions/ProjectEuler/026/desc.yml
Normal file
23
solutions/ProjectEuler/026/desc.yml
Normal file
@ -0,0 +1,23 @@
|
||||
title: Find the value of d < 1000 for which 1/d contains the longest recurring cycle in its decimal fraction part.
|
||||
url: http://projecteuler.net/problem=26
|
||||
|
||||
desc: |
|
||||
A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given:
|
||||
1/2 = 0.5
|
||||
1/3 = 0.(3)
|
||||
1/4 = 0.25
|
||||
1/5 = 0.2
|
||||
1/6 = 0.1(6)
|
||||
1/7 = 0.(142857)
|
||||
1/8 = 0.125
|
||||
1/9 = 0.(1)
|
||||
1/10 = 0.1
|
||||
Where 0.1(6) means 0.166666..., and has a 1-digit recurring cycle. It can be seen that 1/7 has a 6-digit recurring cycle.
|
||||
Find the value of d < 1000 for which 1/d contains the longest recurring cycle in its decimal fraction part.
|
||||
|
||||
solution: Bruteforce
|
||||
|
||||
solutions:
|
||||
solve.php:
|
||||
desc: Basic Solution - needs BCMath
|
||||
language: php
|
20
solutions/ProjectEuler/026/solve.php
Normal file
20
solutions/ProjectEuler/026/solve.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
define('MAX',1000);
|
||||
|
||||
$max_len = 0;
|
||||
for($div = MAX; $div > 2; $div--) {
|
||||
$result = bcdiv('1',(string)$div,2000);
|
||||
|
||||
for($len = 2; $len < 1000; $len++) {
|
||||
if(substr($result,10,$len) === substr($result,10+$len,$len)) {
|
||||
if($len > $max_len) {
|
||||
echo "Div: ".$div. " Len: ".$len."\n";
|
||||
$max_len = $len;
|
||||
$max_div = $div;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
echo $max_div;
|
13
solutions/ProjectEuler/026/solve.rb
Normal file
13
solutions/ProjectEuler/026/solve.rb
Normal file
@ -0,0 +1,13 @@
|
||||
DIGITS = 1000
|
||||
|
||||
max = 10 ** (DIGITS-1)
|
||||
fcurrent = 1
|
||||
fprev = 1
|
||||
term = 2
|
||||
while fcurrent < max do
|
||||
term = term + 1
|
||||
fnext = fcurrent + fprev
|
||||
fprev = fcurrent;
|
||||
fcurrent = fnext;
|
||||
end
|
||||
puts term
|
Reference in New Issue
Block a user