我的代码
#pragma GCC optimize(3,"Ofast","inline")
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b);
int main()
{
int x,y,s=0;cin>>x>>y;
for(int i=x;i<=y;i++)
{
int j=x*y/i;
if(i*j/gcd(i,j)==y&&gcd(i,j)==x)s++;
}
cout<<s;
return 0;
}
int gcd(int a,int b)
{
if(b==0)return a;
else return gcd(b,b%a);
}
题解代码
#include<iostream>
#include<algorithm>
using namespace std;
int gcd(int n,int m)
{
if(n%m==0) return m;
else return gcd(m,n%m);
}
int n,m,s;
int main()
{
cin>>n>>m;
for(int i=n;i<=m;i++)
{
int j=n*m/i;
if(gcd(i,j)==n&&i*j/gcd(i,j)==m) s++;
}
cout<<s;
return 0;
}
然后我看我的代码和题解代码的区别好像只有gcd函数,但是我就是照着一本通提高篇上面(第二版P385)的代码打的,请问我错在哪?