diff options
author | Jesse Luehrs <doy@tozt.net> | 2009-05-17 22:22:03 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2009-05-17 22:22:03 -0500 |
commit | fada6c2c86e3c5d0673c193f028fe87879b34e14 (patch) | |
tree | 98b3fc473dd8d4be7fe72923ebd354e37dfc1283 | |
parent | 5c032a8334949418e59981ebf059667b6c3b9df3 (diff) | |
download | projecteuler-fada6c2c86e3c5d0673c193f028fe87879b34e14.tar.gz projecteuler-fada6c2c86e3c5d0673c193f028fe87879b34e14.zip |
solution for 26
-rwxr-xr-x | 026.pl | 27 |
1 files changed, 27 insertions, 0 deletions
@@ -0,0 +1,27 @@ +#!/usr/bin/perl +use strict; +use warnings; + +sub cycle_length { + my ($n) = @_; + + my $carry = 1; + my $idx = 0; + my %seen; + for my $i (1..$n) { + $carry = ($carry * 10) % $n; + return $idx - $seen{$carry} if exists $seen{$carry}; + $seen{$carry} = $idx++; + } + die "oops! ($n)"; +} + +my ($max, $max_idx) = (0, 0); +for (2..1000) { + my $length = cycle_length($_); + if ($length > $max) { + $max = $length; + $max_idx = $_; + } +} +print "$max_idx\n"; |