50 lines
1 KiB
Text
50 lines
1 KiB
Text
$ happy_1 = 1
|
|
$ found = 0
|
|
$ i = 1
|
|
$ loop1:
|
|
$ n = i
|
|
$ seen_list = ","
|
|
$ loop2:
|
|
$ if f$type( happy_'n ) .nes. "" then $ goto happy
|
|
$ if f$type( unhappy_'n ) .nes. "" then $ goto unhappy
|
|
$ if f$locate( "," + n + ",", seen_list ) .eq. f$length( seen_list )
|
|
$ then
|
|
$ seen_list = seen_list + f$string( n ) + ","
|
|
$ else
|
|
$ goto unhappy
|
|
$ endif
|
|
$ ns = f$string( n )
|
|
$ nl = f$length( ns )
|
|
$ j = 0
|
|
$ sumsq = 0
|
|
$ loop3:
|
|
$ digit = f$integer( f$extract( j, 1, ns ))
|
|
$ sumsq = sumsq + digit * digit
|
|
$ j = j + 1
|
|
$ if j .lt. nl then $ goto loop3
|
|
$ n = sumsq
|
|
$ goto loop2
|
|
$ unhappy:
|
|
$ j = 1
|
|
$ loop4:
|
|
$ x = f$element( j, ",", seen_list )
|
|
$ if x .eqs. "" then $ goto continue
|
|
$ unhappy_'x = 1
|
|
$ j = j + 1
|
|
$ goto loop4
|
|
$ happy:
|
|
$ found = found + 1
|
|
$ found_'found = i
|
|
$ if found .eq. 8 then $ goto done
|
|
$ j = 1
|
|
$ loop5:
|
|
$ x = f$element( j, ",", seen_list )
|
|
$ if x .eqs. "" then $ goto continue
|
|
$ happy_'x = 1
|
|
$ j = j + 1
|
|
$ goto loop5
|
|
$ continue:
|
|
$ i = i + 1
|
|
$ goto loop1
|
|
$ done:
|
|
$ show symbol found*
|