Magnanimous numbers: Difference between revisions
Content added Content deleted
m (added the "Prime Numbers" category.) |
|||
Line 898: | Line 898: | ||
[486685, 488489, 515116, 533176, 551558, 559952, 595592, 595598, 600881, 602081] |
[486685, 488489, 515116, 533176, 551558, 559952, 595592, 595598, 600881, 602081] |
||
</pre> |
</pre> |
||
=={{header|Nim}}== |
|||
<lang Nim>func isPrime(n: Natural): bool = |
|||
if n < 2: return |
|||
if n mod 2 == 0: return n == 2 |
|||
if n mod 3 == 0: return n == 3 |
|||
var d = 5 |
|||
while d * d <= n: |
|||
if n mod d == 0: return false |
|||
inc d, 2 |
|||
if n mod d == 0: return false |
|||
inc d, 4 |
|||
return true |
|||
func isMagnanimous(n: Natural): bool = |
|||
var p = 10 |
|||
while true: |
|||
let a = n div p |
|||
let b = n mod p |
|||
if a == 0: break |
|||
if not isPrime(a + b): return false |
|||
p *= 10 |
|||
return true |
|||
iterator magnanimous(): (int, int) = |
|||
var n, count = 0 |
|||
while true: |
|||
if n.isMagnanimous: |
|||
inc count |
|||
yield (count, n) |
|||
inc n |
|||
for (i, n) in magnanimous(): |
|||
if i in 1..45: |
|||
if i == 1: stdout.write "First 45 magnanimous numbers:\n " |
|||
stdout.write n, if i == 45: '\n' else: ' ' |
|||
elif i in 241..250: |
|||
if i == 241: stdout.write "\n241st through 250th magnanimous numbers:\n " |
|||
stdout.write n, if i == 250: "\n" else: " " |
|||
elif i in 391..400: |
|||
if i == 391: stdout.write "\n391st through 400th magnanimous numbers:\n " |
|||
stdout.write n, if i == 400: "\n" else: " " |
|||
elif i > 400: |
|||
break</lang> |
|||
{{out}} |
|||
<pre>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</pre> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |