in reply to Find if a number is a multiple of a number.
or simplysub divides1 { my($d, $n) = @_; $d < $n ? $d & 1 ? $n & 1 ? divides($d, $n - $d) : divides($d, $n >> 1) : $n & 1 ? 0 : divides($d >> 1, $n >> 1) : $d == $n; } sub divides { 0 == $_[1] || divides1(abs $_[0], abs $_[1]) }
sub divides { 0 == $_[0] ? 0 == $_[1] : 0 == $_[1] % $_[0] }
Update: fixed newline in divides1 subroutine.
|
|---|