站外题TLE,求调!
  • 板块灌水区
  • 楼主yangcenyou
  • 当前回复10
  • 已保存回复10
  • 发布时间2024/8/8 11:06
  • 上次更新2024/8/8 11:50:32
查看原帖
站外题TLE,求调!
1127615
yangcenyou楼主2024/8/8 11:06

题面

#include <bits/stdc++.h>
using namespace std;
long long lcm(long long a,long long b){
    long long c=a,d=b;
    while(a&&b){
        if(a>=b) a%=b;
        else b%=a;
    }
    long long gcd=a+b;
    return c*d/gcd;
}
int main(){
    long long a,b,c,d;
    cin>>a>>b>>c>>d;
    long long l=a,r=b;
    while(1){
        l++;
        if(l%c==0) break;
    }
    while(1){
        r--;
        if(r%c==0) break;
    }
    long long cnt1=(r-l)/c+1;
    l=a,r=b;
    while(1){
        l++;
        if(l%d==0) break;
    }
    while(1){
        r--;
        if(r%d==0) break;
    }
    l=a,r=b;
    long long cnt2=(r-l)/d+1;
    long long lc=lcm(c,d);
    while(1){
        l++;
        if(l%lc==0) break;
    }
    while(1){
        r--;
        if(r%lc==0) break;
    }
    long long cnt3=(r-l)/lc+1;
    //cout<<cnt1<<' '<<cnt2<<' '<<cnt3<<' '<<'\n'; 
    cout<<b-a+1-cnt1-cnt2+cnt3<<'\n';
    return 0;
}
2024/8/8 11:06
加载中...