long long ago (作者英语120分考了97分),有一位智者经过很久很久的研究得出最大公因数的求法,大致为:
int maxn=INT_MIN,n,m;
for(int i=1;i<=min(n,m);i++){
if(n%i==0&&m%i==0) maxn=max(maxn,i);
}
cout<<maxn;
但是最大公约数这个名字太麻烦了的,所以一位聪明的长老将最大公约数命名为:GCD 紧接着这一位长者,又一个GCD方法被研究了出来,大致为:
int a,b;
while(b!=0){
int f=a;
a=b;
b=f%b;
}
cout<<a;
可是还有什么更简便的方法呢? 有
int gcd(int a,int b){
if(b==0) return a;
return gcd(b,a%b);
}
int main{
int a,b;
cin>>a>>b;
cout<<gcd(a,b);
}
可是它容易超时,所以GCD的最终版本出来了:
int gcd(int a,int b){
while(b!=0){
int f=a;
a=b;
b=f%b;
}
}
int main{
int a,b;
cin>>a>>b;
cout<<gcd(a,b);
}
一个完美的GCD就出来啦!
给个关注吧!