问
查看原帖
问
1152799
wsy_I楼主2024/6/26 18:40

这道题不用辗转相除法能AC吗?(我用辗转相除法A的)
也就是,我的代码不用dfs能AC吗?

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a,b,x,y,cnt;
double c;
ll dfs(ll a,ll b)
{
	if(b>a) swap(a,b);
	if(a%b==0) return b;
	else return dfs(b,a%b);
}
int main()
{
	scanf("%lld%lld",&x,&y);
	if(x>y){
		cout<<0;
		return 0;
	}
	for(int i=x;i<=x*y;i+=x){
		a=i;
		c=x*y*1.0/a;
		b=x*y/a;
		if(c!=b) continue;
		if(dfs(a,b)==x) cnt++;
	}
	cout<<cnt;
	return 0;
}
2024/6/26 18:40
加载中...