Help me in solving COOKMACH problem

My issue

My code

#include <iostream>
using namespace std;

int main() {
	// your code goes here
	int t,a,b;
	return 0;

Problem Link: CodeChef: Practical coding for everyone

The logic is first make a as power of 2 by dividing it by 2 when it become power of two then make a as b either by dividing by 2 or multiplying it by 2 depending upon b.
In this way u can count the minimum number of steps

You just neet to verify if a is a power of 2. In that case, you need to now how far this power of 2 is from b, which is already a power of 2. (ex: 2 and 8, 2=2^1 and 8=2^3, so in this case 2 is far from 8 by 2 powers of 2).

But, if a is not a power of two, yo need to convert it to the nearest power of 2 and count the number of steps. ex: if a=5, by doing the first operation (only one operation) a=(a-1)/2 then a=2 (the only way to do this is by dividing, never multiply by 2). So when a gets a power of 2, then do what I explained above.

This will be helpful: lsb(a) = (a & -a). Here, lsb() is the least significant byte (you can search about it later). So if you have a power of two, the lsb() of this number is the same number. In other words, to check if a is a power of 2, just make if ( a == (a & -a) ), and this will make all the work.

Good luck!!!