[ false swap dup size 1 > if [ [] temp put dup size factors -1 split drop witheach [ 2dup split drop dip [ over size swap / ] dup temp replace swap of over = if [ drop not temp share conclude ] ] temp release ] swap ] is rep$ ( $ --> $ b ) [ dup rep$ iff [ say 'The shortest rep-string in "' swap echo$ say '" is "' echo$ say '".' ] else [ say 'There is no rep-string for "' nip echo$ say '".' ] cr ] is task ( $ --> )