最大公约数的定义:如果数a能够被数b整除,那么a就叫做b的倍数,b就叫做a的约数。几个整数中共有的约数,就称为这几个整数的公约数。最大公约数,顾名思义就是,所有公约数中最大的哪一个数。
相关思路:在数学中比较常用的求两个数中最大公约数的算法是辗转相除法。它可以求出任意两个数的最大公约数。辗转相除法的思路是两个数不断取模求余,直到余数为0,得到最大公约数。
相关代码:
#define _CRT_SECURE_NO_DEPRECATE #include<stdio.h> int main() { int n = 0; int m = 0; printf("请输入2个数:"); scanf("%d %d",&n,&m); int max = n%m; for (int i = 0; i < 10; i++) { if (n%m != 0) { n = m; //定理:gcd(a,b) = gcd(b,a mod b) m = max; //(n,m)=(m,max) //(m,max)=(max,m % max) } else break; //求余为0,得到最大公约数跳出循环 } printf("%d\n",max); return 0; }运行结果图: