Advertisement
Guest User

Untitled

a guest
Jul 7th, 2014
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.44 KB | None | 0 0
  1. sub partia {
  2.     my ($u,$v) = @_;
  3.  
  4.     my $shift = 0;
  5.  
  6.     while (1) {
  7.         return $v << $shift if !$u || $u == $v;
  8.         return $u << $shift if !$v;
  9.  
  10.         if ((my $u_odd = $u & 1) && (my $v_odd = $v & 1)) {
  11.             ($u,$v)=($v,$u) if $u < $v;
  12.             $u = ($u - $v) >> 1;
  13.         } else {
  14.             $u >>= 1 if !$u_odd;
  15.             $v >>= 1 if !$v_odd;
  16.             ++$shift if !$u_odd && !$v_odd;
  17.         }
  18.     }
  19. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement