Powerful numbers: Difference between revisions
→{{header|Perl 6}}: Various style and efficiency twiddles
m (→{{header|Julia}}: missing $) |
Thundergnat (talk | contribs) (→{{header|Perl 6}}: Various style and efficiency twiddles) |
||
Line 350:
Perl 6 has no handy pre-made nth integer root routine so has the same problem as Go with needing a slight "fudge factor" in the nth root calculation.
<lang perl6>sub super (
sub is-square-free (Int
constant @p = ^100 .map: { next unless .is-prime; .² };
for @p -> \p { return False if
True
}
▲sub powerfuls ($n, $k) {
my @powerful;
p(1, 2*
sub p (
}
next unless is-square-free($v);▼
for 1 .. ((n / m) ** (1/r)
if r > k {
next unless m gcd v == 1;
}
p(
}
}
Line 378 ⟶ 379:
put "Count and first and last five enumerated n-powerful numbers in 10ⁿ:";
for 2..10 -> \k {
my @powerful = sort powerfuls(10**k, k, True);
printf "%2d %2s-powerful numbers <= 10%-2s: %s ... %s\n", +@powerful, k, super(k),
@powerful.head(5).join(", "), @powerful.tail(5).join(", ");
Line 384 ⟶ 385:
put "\nCounts in each order of magnitude:";
my $top =
for 2..10 -> \k {
quietly say join ', ', [\+] powerfuls(10**($top + k), k);
}</lang>
{{out}}
Line 403:
Counts in each order of magnitude:
2-powerful numbers <= 10ⁿ (where
3-powerful numbers <= 10ⁿ (where
4-powerful numbers <= 10ⁿ (where
5-powerful numbers <= 10ⁿ (where
6-powerful numbers <= 10ⁿ (where
7-powerful numbers <= 10ⁿ (where
8-powerful numbers <= 10ⁿ (where
9-powerful numbers <= 10ⁿ (where
10-powerful numbers <= 10ⁿ (where
=={{header|Phix}}==
|