求两个正整数的最大公因子----C 语言复习

今天接着复习了一些 C 语言的知识点,看了一个问题,就是求两个正整数的最大公因子。

教材里采用的是 Euclid (欧几里德)算法来求解的,其算法是:

1,输入两个正整数 m 和 n。
2,用 m 除以 n,余数为 r,如果 r 等于 0,则 n 就是最大公因,算法结束,否则执行 3。
3,把 n 赋给 m,把 r 赋给 n,转向 2。

来看看程序代码:

#include "stdio.h"
/*用 Euclid 算法求两个正整数的最大公因子*/
main()
{
	int m, n, r;
	printf("Please type in two positive integers:\n");
	scanf("%d,%d", &m, &n);
	while(n != 0)//或者 while(n)
	{
		r = m % n;
		m = n;
		n = r;
	}
	printf("Their greatest common divisor is %d.\n", m);
}

测试:

测试

posted @ 2010-10-16 00:19  无墨来点睛  Views(2699)  Comments(1Edit  收藏  举报