RosettaCodeData/Task/Achilles-numbers/Mathematica/achilles-numbers.math
2023-07-01 13:44:08 -04:00

32 lines
722 B
Text

ClearAll[PowerfulNumberQ, StrongAchillesNumberQ]
PowerfulNumberQ[n_Integer] := AllTrue[FactorInteger[n][[All, 2]], GreaterEqualThan[2]]
AchillesNumberQ[n_Integer] := Module[{divs},
If[PowerfulNumberQ[n],
divs = Divisors[n];
If[Length[divs] > 2,
divs = divs[[2 ;; -2]];
!AnyTrue[Log[#, n] & /@ divs, IntegerQ]
,
True
]
,
False
]
]
StrongAchillesNumberQ[n_] := AchillesNumberQ[n] \[And] AchillesNumberQ[EulerPhi[n]]
n = 0;
i = 0;
Reap[While[n < 50,
i++;
If[AchillesNumberQ[i], n++; Sow[i]]
]][[2, 1]]
n = 0;
i = 0;
Reap[While[n < 20,
i++;
If[StrongAchillesNumberQ[i], n++; Sow[i]]
]][[2, 1]]
Tally[IntegerLength /@ Select[Range[9999999], AchillesNumberQ]] // Grid