1 solutions

  • 0
    @ 2026-1-9 4:41:47

    //这道题问的是这三个数除以某个数x,使得除完了后剩下的东西是一样的 //那说白了就是a=p1x+y,b=p2x+y,c=p3*x+y;然后我们求x的最小值就行了(x>1) //如果abc,那直接就是2了撒,那其他情况嘞 //想啊想啊,我们要求的东西是x,那y就没用了,观察就发现 //a-b=(p1-p2)x;a-c=(p1-p3)x;b-c=(p2-p3)x; //那不就是要得到这些差的除1外的最小公约数嘛 //那有办法了,我们先求最大公约数再求最大公约数的最小因数(大于1)就是了嘛 //思路通了,想下步骤; //if(ab&&bc){cout<<2;return 0;} //a=gcd(gcd(abs(a-b),abs(a-c),),abs(-c)); //for(int.i=2;i<=sqrt(a);i++){if(a%i0){cout<<i;return 0;}} //cout<<a; //return 0; #include<bits/stdc++.h> using namespace std; int gcd(int a,int b){ if(b0)return a; return gcd(b,a%b); } int main(){ int a,b,c; cin>>a>>b>>c; if(ab&&bc){cout<<"2";return 0;} int p1=abs(a-b),p2=abs(a-c),p3=abs(b-c); int mp=gcd(gcd(p1,p2),p3); for(int i=2;i<=sqrt(mp);i++) if(mp%i==0){ cout<<i;return 0;} cout<<mp; return 0;}

    • 1

    Information

    ID
    6749
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    5
    Tags
    (None)
    # Submissions
    176
    Accepted
    61
    Uploaded By