Happy numbers: Difference between revisions
→{{header|ALGOL W}}: Slightly simpler version
(→{{header|ALGOL W}}: Removed near duplicate entry) Tag: Manual revert |
(→{{header|ALGOL W}}: Slightly simpler version) |
||
Line 467:
=={{header|ALGOL W}}==
<syntaxhighlight lang="algolw">
% returns true if n is happy, false otherwise
logical procedure isHappy ( integer value n ) ;
if n < 2 then true▼
else begin▼
% digit square sums, as noted in the Batch File %▼
integer array seen( 0 :: 32 );▼
integer number, trys;▼
number := n;▼
trys := -1;▼
while begin▼
logical terminated;▼
integer tPos;▼
terminated := false;▼
tPos := 0;▼
while not terminated and tPos <= trys do begin▼
terminated := seen( tPos ) = number;▼
tPos := tPos + 1▼
end do begin▼
integer sum;▼
number = 1▼
end isHappy ;▼
▲ % print the first 8 happy numbers %
begin
end while_not_happy_and_not_looping ;
begin % find the first 8 happy numbers %
hCount := 0;
if isHappy( n ) then begin
writeon( i_w := 1, s_w := 0, " ", n );
end
n := n + 1
end
end
end.
{{out}}
<pre>
</pre>
|