I think
no_slogan's will probably be the shortest, but here's some more fun with regexes at 49 chars:
| | | sub reduce {
"@{[map 1x$_,@_]}"=~/(1+)\1* \1+$/;map$_/$+[1],@_
}
|
Update: Here's a 48-char version that uses a relatively fast algorithim for calculating the GCM of the two numbers (I think it's attributed to Euclid?):
| | | sub reduce {
($x,$y)=@_;($x,$y)=($y%$x,$x)while$x;map$_/$y,@_
}
|
MeowChow
s aamecha.s a..a\u$&owag.print