fork(1) download
  1. #include<stdio.h>
  2. #include<iostream>
  3. #include<algorithm>
  4. using namespace std;
  5.  
  6. long long n,a,b,e,xd,yd,tqn,tqi,gc;
  7.  
  8. long long evalute(long long beg,long long ll){return (ll*(ll+1))/2LL*beg;}
  9.  
  10. long long diag(long long n,long long a,long long b){
  11. if(!a)return 0;else
  12. return n/((a*b/gc)/a)+1;
  13. }
  14.  
  15. long long solve(long long n,long long a,long long b){
  16. if(!a)return 0;
  17.  
  18. long long xd=n,yd=(n*a)/b;
  19. long long ret=(xd+1)*(yd+1);
  20.  
  21. ret-=evalute(b/a,(n*a)/b);
  22. ret-=solve((n*a)/b,b%a,a)-diag((n*a)/b,b%a,a);
  23.  
  24. return ret;
  25. }
  26.  
  27. inline int read(){
  28. int ch,fla=0,ret=0;
  29. while(1){
  30. ch=getchar();
  31. if(ch<48)if(fla)return ret;else continue;
  32. ret=10*ret+ch-48;
  33. fla=1;
  34. }
  35. }
  36.  
  37. int main(){
  38. // freopen("in.txt","r",stdin);
  39. // freopen("out.txt","w",stdout);
  40. scanf("%lld",&tqn);
  41. for(tqi=0;tqi<tqn;tqi++){
  42. n=read();
  43. a=read();
  44. b=read();
  45. gc=__gcd(a,b);
  46. printf("%lld\n",solve(n,a,b));
  47. }
  48. return 0;
  49. }
Success #stdin #stdout 0.02s 2728KB
stdin
5
8 2 10
8 4 4
7 1 5
713241932 127894722 957823358
759096725 496666160 980149020
stdout
13
45
11
33963383064794976
145994569610845896