2 条题解
-
1
x 一定是 b1 的约束
一个数的约数一定小于 2
所以枚举到 即可
而一个数的约束其实更少只有几千
所先看每个数是否是约束在看其他条件符合吗
#include<bits/stdc++.h> using namespace std; #define endl "\n" #define int long long #define d double #define ld long double const int MAXN=200000; const int MAXM=500000; const int MAXQ=500000; const int INF=0x1f1f1f1f1f1f1f1f; int gcd(int a,int b) { if(a<b) swap(a,b); if(b==0) return a; return gcd(b,a%b); } int lcm(int a,int b) { return a*b/gcd(a,b); } int T; int a0,a1,b0,b1; signed main() { ios::sync_with_stdio(false); cin.tie(0); cin>>T; while(T--) { cin>>a0>>a1>>b0>>b1; int cnt=0; for(int i=1;i*i<=b1;i++) if(b1%i==0) { if(lcm(b0,i)==b1&&gcd(i,a0)==a1) cnt++; if(i*i!=b1&&b1%i==0&&lcm(b0,b1/i)==b1&&gcd(b1/i,a0)==a1) cnt++; } cout<<cnt<<endl; } return 0; }
信息
- ID
- 105
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 29
- 已通过
- 13
- 上传者