3337 - 习题5-3-2 求最大公约数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 12 MB

输入两个正整数,求其最大公约数。

题目输入

测试数据有多组,每组输入两个正整数,两个正整数之间以空格分隔。

题目输出

对于每组输入,输出其最大公约数。

每组对应一个输出,单独占一行。

输入/输出样例

输入格式

14 49
21 66

输出格式

7
3

C语言解答

#include<stdio.h>
int main()
{
	int a,b,c,d;
	int yue(int x,int y);
	scanf("%d%d%d%d",&a,&b,&c,&d);
	printf("%d\n",yue(a,b));
	printf("%d\n",yue(c,d));
	return 0;
}
int yue(int x,int y)
{
	int i,min,max;
	min=(x>y)?y:x;
	for (i=1;i<min;i++)
	{
		if(x%i==0&&y%i==0)
			max=i;
	}
	return max;
}

C++解答

#include<iostream>
using namespace std;
int main()
{
	int m,n;
	while (cin>>m>>n)
	{
		int r=m%n;
		while (r)
		{
			m=n;
			n=r;
			r=m%n;
		}
		cout<<n<<endl;
	}
	return 0;
}