help!#10TLE!

P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题

DDV1 @ 2024-08-11 21:01:18

#include<bits/stdc++.h>
using namespace std;
int gcd(int a, int b) {
    int u,i;
    u=a;
    i=b;
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    int r=a;
    a=u;
    b=i;
    return r;
}
int lcm(int a,int b){
    int o;
    o=(a*b)/gcd(a,b);
    return o;
}
int main(){
    int x0,y0,add=0;
    long long c;
    cin>>x0>>y0;
    if(x0==y0){
        cout<<1;
        return 0;
    }
    c=x0*y0;
    for(int i=2;i<=c;++i){
        if(c%i==0){
            if(gcd(i,c/i)==x0){
                add=add+1;
            }
        }
    }
    cout<<add;
    return 0;
}

这是为什么? (蒟蒻求大佬解答)


|