最简题解(枚举)

mairuisheng  •  8个月前


只有16行,时间复杂度也低:

#include<cstdio>
#include<algorithm>
int x,y,i,b,r,k,ans;
int main()
{
	scanf("%d %d",&x,&y);
	for(i=x;i<=y;i++)
	{
		if((x*y)%i!=0)continue;
		r=std::__gcd(i,(x*y)/i);
		k=(x*y)/r;
		if(x==r&&y==k)ans++;
	}
	printf("%d",ans);
	return 0;
}

广告:另一道最大公约数和最小公倍数的题解。


评论: