31 lines
618 B
Text
31 lines
618 B
Text
[ [] swap
|
|
dup times
|
|
[ dup i^ 2 + /mod
|
|
0 = if
|
|
[ nip dip
|
|
[ i^ 2 + join ]
|
|
[ dup i^ 2 + /mod
|
|
0 = iff
|
|
nip again ] ]
|
|
drop
|
|
dup 1 = if conclude ]
|
|
drop ] is dpfs ( n --> [ )
|
|
|
|
[ dup dpfs
|
|
dup size 2 < iff
|
|
[ 2drop false ]
|
|
done
|
|
true unrot
|
|
witheach
|
|
[ 2dup / 1 -
|
|
swap mod 0 != if
|
|
[ dip not
|
|
conclude ] ]
|
|
drop ] is giuga ( n --> b )
|
|
|
|
[] 0
|
|
[ 1+ dup giuga if
|
|
[ tuck join swap ]
|
|
over size 4 = until ]
|
|
drop
|
|
echo
|