Happy numbers: Difference between revisions
Content added Content deleted
(→{{header|ALGOL W}}: Slightly simpler version) |
(→{{header|ALGOL W}}: Simplified) |
||
Line 473: | Line 473: | ||
logical procedure isHappy ( integer value n ) ; |
logical procedure isHappy ( integer value n ) ; |
||
begin |
begin |
||
% |
% in base ten, numbers either reach 1 or loop around a sequence % |
||
% containing 4 (see the Wikipedia article) - the Algol 68 sample % |
|||
logical array seen ( 0 :: 729 ); |
|||
% also uses this % |
|||
integer v, dSum; |
integer v, dSum; |
||
for i := 0 until 729 do seen( i ) := false; |
|||
v := abs n; |
v := abs n; |
||
while begin |
while begin |
||
Line 486: | Line 486: | ||
dSum := dSum + ( d * d ) |
dSum := dSum + ( d * d ) |
||
end while_v_ne_0 ; |
end while_v_ne_0 ; |
||
dSum not = 1 and not |
dSum not = 1 and dSum not = 4 |
||
end |
end |
||
do begin |
do begin |
||
v := dSum |
|||
v := dSum |
|||
end while_not_happy_and_not_looping ; |
end while_not_happy_and_not_looping ; |
||
dSum = 1 |
dSum = 1 |