Achilles numbers: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Removed a blank line.) |
Thundergnat (talk | contribs) m (→{{header|Raku}}: avoid unnecessary caching, remove some recalculations) |
||
Line 183: | Line 183: | ||
} |
} |
||
my |
my $achilles = powerful(10**9).hyper(:500batch).grep( { |
||
my $f = .&prime-factors.Bag; |
my $f = .&prime-factors.Bag; |
||
(+$f.keys > 1) && (1 == [gcd] $f.values) && (.sqrt.Int² !== $_) |
(+$f.keys > 1) && (1 == [gcd] $f.values) && (.sqrt.Int² !== $_) |
||
⚫ | |||
}; |
|||
my \𝜑 = 0, |(1..*).hyper.map: -> \t { t × [×] t.&prime-factors.squish.map: { 1 - 1/$_ } } |
my \𝜑 = 0, |(1..*).hyper.map: -> \t { t × [×] t.&prime-factors.squish.map: { 1 - 1/$_ } } |
||
my % |
my %as = Set.new: flat $achilles.values».list; |
||
my |
my $strong = lazy (flat $achilles.sort».value».list».sort).grep: { ?%as{𝜑[$_]} }; |
||
put "First 50 Achilles numbers:"; |
put "First 50 Achilles numbers:"; |
||
put |
put (flat $achilles.sort».value».list».sort)[^50].batch(10)».fmt("%4d").join("\n"); |
||
put "\nFirst 30 strong Achilles numbers:"; |
put "\nFirst 30 strong Achilles numbers:"; |
||
put |
put $strong[^30].batch(10)».fmt("%5d").join("\n"); |
||
my $achilles = powerful(10**9).hyper(:500batch).grep( { |
|||
my $f = .&prime-factors.Bag; |
|||
(+$f.keys > 1) && (1 == [gcd] $f.values) && (.sqrt.Int² !== $_) |
|||
⚫ | |||
put "\nNumber of Achilles numbers with:"; |
put "\nNumber of Achilles numbers with:"; |