Advertisement
sosiris

collatzGlideHost

Jul 11th, 2014
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.37 KB | None | 0 0
  1. uint32_t collatzGlide(const mp::cpp_int& original){
  2.   uint32_t step = 0;
  3.   mp::cpp_int val = original;
  4.   while (true){
  5.     if ((val & 1u) == 0){
  6.       //val is even
  7.       val >>= 1;
  8.       ++step ;
  9.       if (val < original) {
  10.         break;
  11.       }
  12.     }else{
  13.       //val is odd
  14.       val += (val + 1) >> 1;
  15.       step += 2;
  16.     }
  17.   } //while()
  18.   return step;
  19. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement