20pts其他WA水红2关求助

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

zhangmingsheng3521 @ 2023-09-05 22:31:40

rt.似乎是一直输出0

#include"bits/stdc++.h"
using namespace std;
int ju[10000];
int gcd(int a,int b)
{
    int ans=1;
    if (a==1)
    {
        return 1;
    }
    if (b==1)
    {
        return 1;
    }
    for (int i=2;i<=min(a,b);i++)
    {
        if ((i%a==0)&&(i%b==0))
        {
            ans=i;
        }
    }
    return ans;
}
int main()
{
    int x,y,ans=0,flag=0;
    scanf("%d%d",&x,&y);
    for (int i=1;i<=y;i++)
    {
        if (i%y==0)
        {
            flag++;
            ju[flag]=i;
        }
    }
    for (int i=1;i<=flag;i++)
    {
        for (int j=1;j<=i;j++)
        {
            if (j==i)
            {
                break;
            }
            if (gcd((y/ju[i]),(y/ju[j]))==1)
            {
                if (gcd(ju[i],ju[j])==x)
                {
                    ans++;
                }
            }
        }
    }
    printf("%d",ans);
    return 0;
}

by ICU152_QWQ_IS8 @ 2023-09-05 22:32:59

@zhangmingsheng3521 第一个,gcd函数方式有更优的


by zhangmingsheng3521 @ 2023-09-05 22:39:41

@ISU152_YYDS 先解决问题,我知道非最优但是没有TLE


|