Narcissistic decimal number: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add PL/M) |
Not a robot (talk | contribs) (add BCPL) |
||
Line 1,266: | Line 1,266: | ||
9800817 4210818 |
9800817 4210818 |
||
1741725</pre> |
1741725</pre> |
||
=={{header|BCPL}}== |
|||
<syntaxhighlight lang="bcpl">get "libhdr" |
|||
let pow(x,y) = valof |
|||
$( let r = 1 |
|||
for i = 1 to y do |
|||
r := r * x |
|||
resultis r |
|||
$) |
|||
let narcissist(n) = valof |
|||
$( let digits = vec 10 |
|||
let number = n |
|||
let len = 0 |
|||
let i = ? and powsum = 0 |
|||
while n > 0 do |
|||
$( digits!len := n rem 10 |
|||
n := n / 10 |
|||
len := len + 1 |
|||
$) |
|||
i := len |
|||
while i > 0 do |
|||
$( i := i - 1 |
|||
powsum := powsum + pow(digits!i, len) |
|||
$) |
|||
resultis powsum = number |
|||
$) |
|||
let start() be |
|||
$( let n = 0 |
|||
for i = 1 to 25 |
|||
$( until narcissist(n) do n := n+1 |
|||
writef("%I9*N", n) |
|||
n := n+1 |
|||
$) |
|||
$)</syntaxhighlight> |
|||
{{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|Befunge}}== |
=={{header|Befunge}}== |