Narcissistic decimal number: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) (Added 11l) |
|||
Line 2,850: | Line 2,850: | ||
{{out}} |
{{out}} |
||
<pre>0 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474 54748 92727 93084 548834 1741725 4210818 9800817 9926315 </pre> |
<pre>0 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474 54748 92727 93084 548834 1741725 4210818 9800817 9926315 </pre> |
||
=={{header|Nim}}== |
|||
A simple solution which runs in about one second. |
|||
<lang Nim>import sequtils, strutils |
|||
func digits(n: Natural): seq[int] = |
|||
result.add n mod 10 |
|||
var n = n div 10 |
|||
while n != 0: |
|||
result.add n mod 10 |
|||
n = n div 10 |
|||
proc findNarcissistic(count: Natural): seq[int] = |
|||
var |
|||
n = 0 |
|||
m = 10 |
|||
powers = toseq(0..9) |
|||
while true: |
|||
while n < m: |
|||
var s = 0 |
|||
for d in n.digits: |
|||
inc s, powers[d] |
|||
if s == n: |
|||
result.add n |
|||
if result.len == count: return |
|||
inc n |
|||
for i in 0..9: powers[i] *= i |
|||
m *= 10 |
|||
echo findNarcissistic(25).join(" ")</lang> |
|||
{{out}} |
|||
<pre>0 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474 54748 92727 93084 548834 1741725 4210818 9800817 9926315</pre> |
|||
=={{header|Oforth}}== |
=={{header|Oforth}}== |