fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. long long gcd(long long a, long long b) {
  5. return (b == 0 ? a : gcd(b, a % b));
  6. }
  7.  
  8. int ktra(long long a, long long b) {
  9. return (b * gcd(a, b) % (a + b)) == 0;
  10. }
  11.  
  12. int main() {
  13. int t;
  14. scanf("%d", &t);
  15.  
  16. while (t--) {
  17. long long n, m;
  18. scanf("%lld %lld", &n, &m);
  19.  
  20. long long res = 0;
  21. long long limit_n = (long long)sqrt(n);
  22. long long limit_m = (long long)sqrt(m);
  23.  
  24. for (long long i = 1; i * i <= n; ++i) {
  25. for (long long j = 1; j * j <= m; ++j) {
  26. if (gcd(i, j) == 1) {
  27. res += (long long)fmin(n / ((i + j) * i), m / ((i + j) * j));
  28. }
  29. }
  30. }
  31.  
  32. printf("%lld\n", res);
  33. }
  34.  
  35. return 0;
  36. }
  37.  
Success #stdin #stdout 0.1s 5300KB
stdin
6
1 1
2 3
3 5
10 8
100 1233
1000000 1145141
stdout
0
1
1
6
423
5933961