解题思路:
最大公约数求法:
辗转相除法:
假如需要求 1997 和 615 两个正整数的最大公约数,用欧几里得算法,是这样进行的:
1997 ÷ 615 = 3 (余 152)
615 ÷ 152 = 4(余7)
152 ÷ 7 = 21(余5)
7 ÷ 5 = 1 (余2)
5 ÷ 2 = 2 (余1)
2 ÷ 1 = 2 (余0)
至此,最大公约数为1
以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数,所以就得出了 1997 和 615 的最大公约数 1。
-----------------------------来自百度百科
最小公倍数求法:
最小公倍数=a*b/最大公约数
注意事项:
参考代码:
#include <stdio.h> int gcd(int a,int b){//求最大公约数 这里用的是辗转相除法 int t; //中介 while(1){ //死循环 直到break才离开 t=a%b; a=b; b=t; if(a%b==0){ break;//跳出循环 } } return b; //返回最小公约数 } int cme(int a,int b,int gcd){//求最小公倍数 int cme=a*b/gcd; return cme; } int main(){ int a,b; scanf("%d %d",&a,&b); printf("%d %d",gcd(a,b),cme(a,b,gcd(a,b))); return 0; }
0.0分
1 人评分
1012题解浏览:938 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:497 |
矩阵的对角线之和 (C语言代码)浏览:1401 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:765 |
1231题解(注意理解“输入多个测试实例”)浏览:830 |
整除的尾数 (C语言代码)浏览:852 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:465 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:555 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:441 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:419 |