Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sub partia {
- my ($u,$v) = @_;
- my $shift = 0;
- while (1) {
- return $v << $shift if !$u || $u == $v;
- return $u << $shift if !$v;
- if ((my $u_odd = $u & 1) && (my $v_odd = $v & 1)) {
- ($u,$v)=($v,$u) if $u < $v;
- $u = ($u - $v) >> 1;
- } else {
- $u >>= 1 if !$u_odd;
- $v >>= 1 if !$v_odd;
- ++$shift if !$u_odd && !$v_odd;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement