Magnanimous numbers
func is_magnanimous(n) {
1..n.ilog10 -> all {|k|
sum(divmod(n, k.ipow10)).is_prime
}
}
say "First 45 magnanimous numbers:"
say is_magnanimous.first(45).join(' ')
say "\n241st through 250th magnanimous numbers:"
say is_magnanimous.first(250).last(10).join(' ')
say "\n391st through 400th magnanimous numbers:"
say is_magnanimous.first(400).last(10).join(' ')
Output:
First 45 magnanimous numbers:
0 1 2 3 4 5 6 7 8 9 11 12 14 16 20 21 23 25 29 30 32 34 38 41 43 47 49 50 52 56 58 61 65 67 70 74 76 83 85 89 92 94 98 101 110
241st through 250th magnanimous numbers:
17992 19972 20209 20261 20861 22061 22201 22801 22885 24407
391st through 400th magnanimous numbers:
486685 488489 515116 533176 551558 559952 595592 595598 600881 602081
Last updated