怎样用C语言程序编程实现m和n的最大公约数和最小公倍数,用do-while循环
从键盘接收两个int型整数m和n,先求出最大公约数,再由"m/最大公约数*n"来求得最小公倍数。代码如下:
#include "stdio.h"
int main(int argc,char *argv[]){
int m,n,g;
printf("Input m & n(int m,n>0)...\n");
if(scanf("%d%d",&m,&n)!=2 || m<1 || n<1){//输入两个整数,保证大于0
printf("Input error, exit...\n");
return 0;
}
g = (m<n ? m : n)+1;
do{//用穷举法求GCD
g--;
}while(m%g || n%g);
printf("\nThe GCD is %d\nThe LCM is %d\n",g,m/g*n);
return 0;
}
C语言,用递归函数求最大公约数
int gcd(int a,int b){ if(b == 0) return a; else return gcd(b,a%b);}此乃递归实现,代码量最少,也很实用(前期)。其实直接用algorithm库里的__gcd(a,b)函数最快。这个函数用的也是欧几里得算法哦。超超实用的算法,四大定理也各种用。推荐去看欧几里得算法的证明,还有欧拉定理,费马小定理的证明,太妙了啊啊。
a和c的最大公因数分别是多少
a和c的最大公因数分别是什么?1. 假设a和c是两个整数,我们需要找到它们的最大公因数。
2. 最大公因数是指能够同时整除a和c的最大的正整数。
3. 一种常用的方法是使用欧几里得算法,也被称为辗转相除法。
4. 根据欧几里得算法,我们可以通过反复用较小数除较大数,并用余数替换较大数,直到余数为0,此时较小数就是最大公因数。
5. 因此,如果你提供具体的数值,我可以运用欧几里得算法来计算a和c的最大公因数。
最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。
还没有评论,来说两句吧...