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