LL a1,b1,a2,b2;
LL cal(LL k,LL n){
LL t=n%k;
LL r=n/k*k*(k-1)/2+t*(t+1)/2;
return (n*(n+1)/2-r)/k;
}
LL cal(LL a,LL b,LL L,LL R){
return a*(R-L+1)+cal(b,R)-cal(b,L-1);
}
LL solve(LL L,LL R){
if(L>R)
return 0;
else
return (R-L+1)-abs(cal(a1,b1,L,R)-cal(a2,b2,L,R));
}
LL upper(LL p,LL q){
LL ans=p/q;
while(ans*q=p)ans--;
return ans;
}
int main()
{
int T=read_int();
while(T--){
LL n=read_int();
a1=read_int(),b1=read_int(),a2=read_int(),b2=read_int();
if(b1==b2){
if(a1==a2)
enter(n);
else
enter(0);
}
else{
if(b1>b2){
swap(a1,a2);
swap(b1,b2);
}
LL ans1=solve(max(1LL,upper((a2-a1-1)*b1*b2,b2-b1)),min(n,lower((a2-a1)*b1*b2,b2-b1)));
LL ans2=solve(max(1LL,upper((a2-a1)*b1*b2,b2-b1)),min(n,lower((a2-a1+1)*b1*b2,b2-b1)));
enter(ans1+ans2);
}
}
return 0;
}