/**辗转相除求最大公因数
设两数为a、b(a>b),求a和b最大公约数(a,b)的步骤如下:
用a除以b,得a÷b=q......r1(0≤r1)。若r1=0,则(a,b)=b;
若r1≠0,则再用b除以r1,得b÷r1=q......r2 (0≤r2
若r2=0,则(a,b)=r1,若r2≠0,则继续用r1除以r2,
……如此下去,直到能整除为止。其最后一个余数为0的除数即为(a, b)的最大公约数。
*/
#include<iostream>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
int c=max(a,b);
int d=min(a,b);
int t;//中间变量,存余数的
if(a!=0&&b!=0){
t=c%d;
while(t!=0){
a=b;
b=t;
t=b%t;
}
cout<<b;
}
else{
cout<<"error";
}
}
今天也是收获满满的一天
本文介绍了一种使用辗转相除法求两个正整数最大公因数的算法实现。通过不断进行除法操作,直到余数为0,此时的除数即为两数的最大公因数。
9万+

被折叠的 条评论
为什么被折叠?



