#include <iostream>
#include <stdlib.h>
using namespace std;
void swap(int &a,int &b)
{
int t=a;
a=b;
b=t;
}
int getnum(int a,int b)
{
if(a<b)swap(a,b);
int t;
while(a-b!=0)
{
t=a-b;
if(t<b){
a=b;b=t;
}else
{a=t;
}
}
return b;
}
void func()
{
int m,n;
while(cin>>m>>n)
{
cout<<getnum(m,n)<<endl;
}
}
int main(int argc, char *argv[])
{
//printf("Hello, world\n");
func();
return 0;
}
辗转相除或辗转相减(都是相除的思路),相减的过程可以通过判断奇偶来减少计算的数量(这里未写,待补上)
-
题目描述:
-
输入两个正整数,求其最大公约数。
-
输入:
-
测试数据有多组,每组输入两个正整数。
-
输出:
-
对于每组输入,请输出其最大公约数。
-
样例输入:
-
49 14
-
样例输出:
-
7