(欧几里得算法) 给定两个正整数 m,n ,求它们的最大公因子,即能够同时整除m和n的最大整数
1.[求余数] 以n除m并令r为所得余数(0<=r<n)
2.[余数为0?]若r=0,算法结束,n即为答案。
3.[减少]置m<-n,<--r,并返回步骤1
但若m<n,前面三步运行结果是m',n交换,所以我们应该先比较m,n大小,并置m>=n,减少其运行时间
所以首先应:
0.[确保m>=n],如果m<n,交换m<--->n,
#include
using namespace std;
int main(){
int m,n,r;
cout<<"input m,n"<
>m>>n;
if(m
运行结果如图: