Skip to content

Commit

Permalink
Problem 26, Perl 5.
Browse files Browse the repository at this point in the history
  • Loading branch information
jtpalmer committed Nov 2, 2010
1 parent 3014aa0 commit 75edda8
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions 026.pl
@@ -0,0 +1,33 @@
#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;
use List::MoreUtils qw(any firstidx);

sub recurring_cycle_length {
my ( $numerator, $denominator ) = @_;

my ( @remainders, $remainder );

while (1) {
while ( $denominator > $numerator ) { $numerator *= 10 }
if ( $remainder = $numerator % $denominator ) {
last if any { $_ == $remainder } @remainders;
push @remainders, $remainder;
$numerator = $remainder;
}
else {
last;
}
}

return 0 unless @remainders && $remainder;

return scalar(@remainders) - firstidx { $_ == $remainder } @remainders;
}

#say for map { $_ . ' ' . recurring_cycle_length( 1, $_ ) } 2 .. 9;

my @lengths = sort { $a->[1] <=> $b->[1] }
map { [ $_, recurring_cycle_length( 1, $_ ) ] } 2 .. 999;
say $lengths[-1]->[0];

0 comments on commit 75edda8

Please sign in to comment.