Super-Poulet numbers: Difference between revisions

Content added Content deleted
m (→‎{{header|Raku}}: off-by-one error)
m (→‎{{header|Raku}}: efficiency tweaks)
Line 23: Line 23:


my @poulet = lazy (2..*).hyper(:2000batch).grep: { !.is-prime && (1 == expmod 2, $_ - 1, $_) }
my @poulet = lazy (2..*).hyper(:2000batch).grep: { !.is-prime && (1 == expmod 2, $_ - 1, $_) }
my @super-poulet = @poulet.grep: { all .&divisors.map: { (exp($_, 2) - 2) %% $_ } }
my @super-poulet = @poulet.grep: { all .&divisors.skip(1).map: { 2 == expmod 2, $_, $_ } }


say "First 20 Super-Poulet numbers:\n" ~ @super-poulet[^20].gist;
say "First 20 Super-Poulet numbers:\n" ~ @super-poulet[^20].gist;