var num=readline();//行数
while(num>0){
num--;//次数减一
var arr=readline();
arr=arr.split(' ');// a,b,,p,q
var a=parseInt(arr[0]);
var b=parseInt(arr[1]);
var p=parseInt(arr[2]);
var tem=p;//保存最初的p
var q=parseInt(arr[3]);
var p_add_num=0;//每次增加次数(以p为主)
var a_add_num=0;//每次增加次数(以a为主)
//每次增加可以 a=a+p(一次) // p=p*q,a=a+p (两次)
if(a<b){
//一般来说,划算的做法是a=a+p;毕竟只需要一次
while(a+p<b){
p_add_num++;//次数加一
p=p*q;
}
while(a<b){
a_add_num++;
a=a+tem;
}
}
p_add_num=p_add_num+1;//还要加上一次a=a+p;
//b<=a 的时候就满足条件
//console.log(a_add_num,p_add_num)
print(a_add_num>p_add_num?p_add_num:a_add_num)
}