191519

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

zhuyifan0826 @ 2024-07-25 13:21:49

听取WA声一片


by haimingbei @ 2024-07-25 13:24:27

@zhuyifan0826 代码如下(AC,求关)

#include<bits/stdc++.h>
using namespace std;
int main(){
    int x0,y0,ans=0;
    cin>>x0>>y0;
    int n=x0*y0;
    for(int i=x0;i<=y0;i++){
        if(n%i==0){
            int a=n/i;
            bool f=1;
            if(a%x0==0 && i%x0==0 && y0%a==0 && y0%i==0){
                int x=min(i,a),y=max(i,a);
                for(int j=x0+1;j<=x;j++)
                    if(i%j==0 && a%j==0)f=0;
                for(int k=y;k<y0;k++)
                    if(k%i==0 && k%a==0)f=0;
                if(f==1)ans++;
            }   
        }
    }
    cout<<ans;
    return 0;
}

|