编写程序,要求用户输入两个整数,然后计算并显示这两个整数的最大公约数(GCD):
Enter two integers: 12 28
Greatest common aivisor: 4
提示:求最大公约数的经典算法是Euclid算法,方法如下:分别让变量m和n存储两个数的值;用m除
以n;把除数保存在m中,而把余数保存在n中;如果n为0,那么停止操作,m中的值是GCD;否则,
从m除以n开始,重复上述除法过程。
或者从两个整数中较小的那个数开始除到1,如果余数一直不为0 说明他们的最大公约数是1。
Euclid算法程序如下:
#include <stdio.h>
main() {
int m, n, a;
printf("Enter two integers:");
scanf("%d%d", &m, &n);
if (m < n) { a = m; m = n; n = a; }
while (m % n != 0) {
a = n;
n = m % n;
m = a;
}
printf("Greatest common divisor: %d", n);
return 0;
}
常规思路程序如下: