sub reduce { "@{[map 1x$_,@_]}"=~/(1+)\1* \1+$/;map$_/$+[1],@_ } #### sub reduce { ($x,$y)=@_;($x,$y)=($y%$x,$x)while$x;map$_/$y,@_ }