use v6;
my $pass_start = 5; # start at the first number divisible by three after this one
my $pass_end = 17; # skip ahead when we get here
my $n;
loop ($n = 6; ; $n += 3)
{
if $n > $pass_end
{
$pass_start *= 10;
$pass_end *= 10;
$n = $pass_start;
$n -= $n % 3;
next;
}
my $digits = (2*$n).comb.sort;
next unless ($digits ~~/0|5/);
# say "$n ==> $digits";
last if
$digits eq (3*$n).comb.sort &&
$digits eq (4*$n).comb.sort &&
$digits eq (5*$n).comb.sort &&
$digits eq (6*$n).comb.sort;
}
say $n;
Second try (Score:1)
Re: (Score:1)
care to contribute to the euler_bench program? (Score:1)
{after some poking from Eric Wilhelm I'll post this here as well}
I'm part of PDX.pm and we've started a project to collect solutions to euler problems as a way to benchmark rakudo. We would love to have you join in the fun. Currently everything is up on github (http://github.com/notbenh/euler_bench/tree/master).
benh~
Re: (Score:1)
The answer has to be divisible by 9 (Score:1)
The sum of the digits of a number mod 9 is always the number mod 9. The sum of the digits of 2*$n and 3*$n is the same, which means that mod 9, 2*$n and 3*$n are the same, which means that $n is 0 mod 9, so $n is divisible by 9.
This should improve your speed by a factor of 3. :-)
Re: (Score:1)