Codeforces 992 B

RIOChing

关注

阅读 76

2022-07-15


​​传送门​​

题目大意

问闭区间内存在多少对满足;

思路



那么


找到满足的即可,因为,时间复杂度

代码

ll l,r,x,y;
ll check(int a,int b){
if(a*x>=l&&a*x<=r&&b*x>=l&&b*x<=r)return 1;
return 0;
}
ll gcd(ll a,ll b){
return !b?a:gcd(b,a%b);
}

int main(){
scanf("%lld%lld%lld%lld",&l,&r,&x,&y);
if(y%x){//x不是y的因数,一定找不到
puts("0");
return 0;
}
ll tmp=y/x;
int cnt=0;
for(int i=1;i*i<=tmp;i++){
if(tmp%i==0&&check(tmp/i,i)&&gcd(i,tmp/i)==1){
if(i==tmp/i)cnt++;
else cnt+=2;
}
}
printf("%d\n",cnt);
}


精彩评论(0)

0 0 举报