Jump to content

Achilles numbers: Difference between revisions

m
→‎{{header|Raku}}: avoid unnecessary caching, remove some recalculations
m (→‎{{header|Wren}}: Removed a blank line.)
m (→‎{{header|Raku}}: avoid unnecessary caching, remove some recalculations)
Line 183:
}
 
my @$achilles = powerful(10**59).sort.hyper(:500batch).grep:( {
my $f = .&prime-factors.Bag;
(+$f.keys > 1) && (1 == [gcd] $f.values) && (.sqrt.Int² !== $_)
} ).classify: { .chars }
};
 
my \𝜑 = 0, |(1..*).hyper.map: -> \t { t × [×] t.&prime-factors.squish.map: { 1 - 1/$_ } }
 
my %psas = Set.new: @flat $achilles.values».list;
 
my @$strong = @lazy (flat $achilles.sort».value».list».sort).grep: { ?%psas{𝜑[$_]} };
 
put "First 50 Achilles numbers:";
put @(flat $achilles.sort».value».list».sort)[^50].batch(10)».fmt("%4d").join("\n");
 
put "\nFirst 30 strong Achilles numbers:";
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² !== $_)
} ).classify: { .chars }
 
put "\nNumber of Achilles numbers with:";
10,333

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.