Multiplicative order: Difference between revisions

m
→‎{{header|Perl 6}}: flatten in two places
m (→‎{{header|REXX}}: added the REXX language.)
m (→‎{{header|Perl 6}}: flatten in two places)
Line 713:
my @qs = 1;
for factor($t) -> $f {
@qs = flat @qs.map(-> $q { (0..$f.value).map(-> $j { $q * $f.key ** $j }) });
}
@qs.sort();
Line 722:
sub mo($a, $m) {
$a gcd $m == 1 || die "$a and $m are not relatively prime";
[lcm] flat 1, factor($m).map(-> $r { mo-prime($a, $r.key, $r.value) });
}
Line 729:
for (10, 21, 25, 150, 1231, 123141, 34131) -> $n {
# say factor($n).perl;
# say factor($n).map(-> $pair { $pair.key ** $pair.value }).perl;
is ([*] factor($n).map(-> $pair { $pair.key ** $pair.value })), $n, "$n factors correctly";
}
2,392

edits