Self numbers: Difference between revisions

m (→‎ten millionth self number: added/changed whitespace and comments, optimized an inner DO loop.)
Line 1,225:
<pre>
the 100,000,000th self number is: 1,022,727,208
</pre>
 
=={{header|Ring}}==
<lang ring>
load "stdlib.ring"
 
see "working..." + nl
see "The first 50 self numbers are:" + nl
 
n = 0
num = 0
limit = 51
limit2 = 10000000
 
while true
n = n + 1
for m = 1 to n
flag = 1
sum = 0
strnum = string(m)
for p = 1 to len(strnum)
sum = sum + number(strnum[p])
next
sum2 = m + sum
if sum2 = n
flag = 0
exit
else
flag = 1
ok
next
if flag = 1
num = num + 1
if num < limit
see "" + num + ". " + n + nl
ok
if num = limit2
see "The " + limit2 + "th self number is: " + n + nl
ok
if num > limit2
exit
ok
ok
end
 
see "done..." + nl
</lang>
Output:
<pre>
working...
The first 50 self numbers are:
1. 1
2. 3
3. 5
4. 7
5. 9
6. 20
7. 31
8. 42
9. 53
10. 64
11. 75
12. 86
13. 97
14. 108
15. 110
16. 121
17. 132
18. 143
19. 154
20. 165
21. 176
22. 187
23. 198
24. 209
25. 211
26. 222
27. 233
28. 244
29. 255
30. 266
31. 277
32. 288
33. 299
34. 310
35. 312
36. 323
37. 334
38. 345
39. 356
40. 367
41. 378
42. 389
43. 400
44. 411
45. 413
46. 424
47. 435
48. 446
49. 457
50. 468
The 10000000th self number is: 1022727208
done...
</pre>
 
2,468

edits