求两个正整数的最大公因子----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); }
测试: