summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x026.pl27
1 files changed, 27 insertions, 0 deletions
diff --git a/026.pl b/026.pl
new file mode 100755
index 0000000..9df6c5f
--- /dev/null
+++ b/026.pl
@@ -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";