0
点赞
收藏
分享

微信扫一扫

Codeforces 992 B

RIOChing 2022-07-15 阅读 76


​​传送门​​

题目大意

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

思路



那么


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

代码

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 条评论