1114 - C语言2.11

读入两个正整数m和n,计算m和n的最大公约数。

题目输入

两个空格隔开的正整数m和n。

题目输出

m和n的最大公约数。注意行尾输出换行。

输入/输出样例

题目输入

35 14

题目输出

7

C语言解答

#include<stdio.h>
int main(){
int m,n,temp;
scanf("%d %d",&m,&n);
while(m%n!=0){
  temp=n;
  n=m%n;
  m=temp;}
printf("%d\n",n);
return 0;
}

C++解答

#include <stdio.h>
int main() {
	int m, n, t;
	scanf("%d %d", &m, &n);
	/* 比较m和n的大小,通过交换保证m <= n */
	if (m > n) {
		t = m;
		m = n;
		n = t;
	}
	/* 进行欧几里得辗转相除法求出最大公约数,并保存在n中 */
	while (m != 0) {
		t = m;
		m = n % m;
		n = t;
	}
	printf("%d\n", n);
	return 0;
}

时间限制 1 秒
内存限制 32 MB
讨论 统计
上一题 下一题