Humble numbers: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
(Added XPL0 example.) |
||
Line 5,588: | Line 5,588: | ||
7,545 have 15 digits |
7,545 have 15 digits |
||
8,632 have 16 digits |
8,632 have 16 digits |
||
</pre> |
|||
=={{header|XPL0}}== |
|||
<syntaxhighlight lang "XPL0">func Humble(N); \Return 'true' if N is a humble number |
|||
int N; |
|||
[if N = 1 then return true; |
|||
if rem(N/2) = 0 then return Humble(N/2); |
|||
if rem(N/3) = 0 then return Humble(N/3); |
|||
if rem(N/5) = 0 then return Humble(N/5); |
|||
if rem(N/7) = 0 then return Humble(N/7); |
|||
return false; |
|||
]; |
|||
int N, C, D, P; |
|||
[N:= 1; C:= 0; |
|||
loop [if Humble(N) then |
|||
[C:= C+1; |
|||
IntOut(0, N); ChOut(0, ^ ); |
|||
if C >= 50 then quit; |
|||
]; |
|||
N:= N+1; |
|||
]; |
|||
CrLf(0); |
|||
D:= 1; P:= 10; N:= 1; C:= 0; |
|||
loop [if Humble(N) then |
|||
[if N >= P then |
|||
[IntOut(0, D); |
|||
Text(0, ": "); |
|||
IntOut(0, C); |
|||
CrLf(0); |
|||
C:= 0; |
|||
D:= D+1; |
|||
if D > 9 then quit; |
|||
P:= P*10; |
|||
]; |
|||
C:= C+1; |
|||
]; |
|||
N:= N+1; |
|||
]; |
|||
]</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
1 2 3 4 5 6 7 8 9 10 12 14 15 16 18 20 21 24 25 27 28 30 32 35 36 40 42 45 48 49 50 54 56 60 63 64 70 72 75 80 81 84 90 96 98 100 105 108 112 120 |
|||
1: 9 |
|||
2: 36 |
|||
3: 95 |
|||
4: 197 |
|||
5: 356 |
|||
6: 579 |
|||
7: 882 |
|||
8: 1272 |
|||
9: 1767 |
|||
</pre> |
</pre> |
||