24 lines
661 B
Text
24 lines
661 B
Text
test: proc options (main); /* 19 November 2011 */
|
|
declare (i, j, n, m, nh initial (0) ) fixed binary (31);
|
|
|
|
main_loop:
|
|
do j = 1 to 100;
|
|
n = j;
|
|
do i = 1 to 100;
|
|
m = 0;
|
|
/* Form the sum of squares of the digits. */
|
|
do until (n = 0);
|
|
m = m + mod(n, 10)**2;
|
|
n = n/10;
|
|
end;
|
|
if m = 1 then
|
|
do;
|
|
put skip list (j || ' is a happy number');
|
|
nh = nh + 1;
|
|
if nh = 8 then return;
|
|
iterate main_loop;
|
|
end;
|
|
n = m; /* Replace n with the new number formed from digits. */
|
|
end;
|
|
end;
|
|
end test;
|