#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;

long long n,a,b,e,xd,yd,tqn,tqi,gc;

long long evalute(long long beg,long long ll){return (ll*(ll+1))/2LL*beg;}

long long diag(long long n,long long a,long long b){
	if(!a)return 0;else
	return n/((a*b/gc)/a)+1;
}

long long solve(long long n,long long a,long long b){
	if(!a)return 0;

	long long xd=n,yd=(n*a)/b;
	long long ret=(xd+1)*(yd+1);

	ret-=evalute(b/a,(n*a)/b);
	ret-=solve((n*a)/b,b%a,a)-diag((n*a)/b,b%a,a);

	return ret;
}

inline int read(){
	int ch,fla=0,ret=0;
	while(1){
		ch=getchar();
		if(ch<48)if(fla)return ret;else continue;
		ret=10*ret+ch-48;
		fla=1;
	}
}

int main(){
//	freopen("in.txt","r",stdin);
//	freopen("out.txt","w",stdout);
	scanf("%lld",&tqn);
	for(tqi=0;tqi<tqn;tqi++){
		n=read();
		a=read();
		b=read();
		gc=__gcd(a,b);
		printf("%lld\n",solve(n,a,b));
	}
	return 0;
}