90分,测试点4过不去,没用gcd,求解答

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

ruaaaa @ 2023-08-15 22:16:45

#include<iostream>
using namespace std;
int f(int a,int b)
{
    int min=a;
    if(a>b)
        min=b;
    for(int i=2;i<=min;i++)
        if(a%i==0&&b%i==0)
            return 0;
    return 1;
}
int main()
{
    int num=0;
    int x,y;
    cin>>x>>y;
    int k=y/x,i;
    for(i=1;i<=k;i++)
    {
        if(k%i==0)
            if(f(i,k/i)==1)
                num++;
    }
    cout<<num;
    return 0;
 } 

顺便问一句,输入的y一定大于x吗


by sbh2012 @ 2023-08-17 11:49:48

加一个判断,当y不是x的倍数时,那么直接输出0,程序结束。


|