wsy_I @ 2024-06-26 18:40:33
这道题不用辗转相除法能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;
}
by return_second @ 2024-06-26 19:08:48
用STL的__gcd
!
by wsy_I @ 2024-06-26 20:24:47
没学过。。。