#!/usr/bin/env perl use strict; use warnings; my @primes = (2,3,5,7,11,13,17) ; my @start = (0..209); my @results =(); foreach my $x (@primes){ my $y0=0; my @best = @start; my $count = scalar @best; print "\nprime $x $count\n"; foreach my $y (0..$x-1){ my @new = grep { ($_+$y) % $x } @best; my $new = scalar @new; print " ${y}mod${x} = $new\n"; if ($new < @start){ @start = @new; $y0 = $y; } } push @results, "[$y0,$x]"; } print "$_\n" for @start; print join(',',@results),"\n";