C语言求最小公倍数和最大公约数三种算法(经典)

您所在的位置:网站首页 c语言求最大公约数dowhile C语言求最小公倍数和最大公约数三种算法(经典)

C语言求最小公倍数和最大公约数三种算法(经典)

2024-07-12 17:23:06| 来源: 网络整理| 查看: 265

最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,其中一个最小的公倍数是他们的最小公倍数,同样地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接

求最小公倍数算法:

最小公倍数=两整数的乘积÷最大公约数

求最大公约数算法:

(1)辗转相除法

有两整数a和b:

① a%b得余数c

② 若c=0,则b即为两数的最大公约数

③ 若c≠0,则a=b,b=c,再回去执行①

例如求27和15的最大公约数过程为:

27÷15 余1215÷12余312÷3余0因此,3即为最大公约数

1 #include 2 int main() /* 辗转相除法求最大公约数 */ 3 { 4 int m, n, a, b, t, c; 5 printf("Input two integer numbers:\n"); 6 scanf("%d%d", &a, &b); 7 m=a; n=b; 8 while(b!=0) /* 余数不为0,继续相除,直到余数为0 */ 9 { c=a%b; a=b; b=c;} 10 printf("The largest common divisor:%d\n", a); 11 printf("The least common multiple:%d\n", m*n/a); 12 }

提供一种简写的方式:

1 int gcd(int a,int b) 2 { 3 return b==0?a:gcd(b,a%b); 4 }

⑵ 相减法

有两整数a和b:

① 若a>b,则a=a-b

② 若a12 ) 15-12=3( 12>3 )

12-3=9( 9>3 ) 9-3=6( 6>3 )

6-3=3( 3==3 )

因此,3即为最大公约数

1 #include 2 int main ( ) /* 相减法求最大公约数 */ 3 { 4 int m, n, a, b, c; 5 printf("Input two integer numbers:\n"); 6 scanf ("%d,%d", &a, &b);m=a; n=b; 7 /* a, b不相等,大数减小数,直到相等为止。*/ 8 while ( a!=b) 9 if (a>b) a=a-b; 10 else b=b-a; 11 printf("The largest common divisor:%d\n", a); 12 printf("The least common multiple:%d\n", m*n/a); 13 }

⑶穷举法

有两整数a和b:

① i=1

② 若a,b能同时被i整除,则t=i

③ i++

④ 若 i a(或b),则t即为最大公约数,结束

改进:

① i= a(或b)

② 若a,b能同时被i整除,则i即为最大公约数,

结束

③ i--,再回去执行②

有两整数a和b:

① i=1

② 若a,b能同时被i整除,则t=i

③ i++

④ 若 i a(或b),则t即为最大公约数,结束

改进:

① i= a(或b)

② 若a,b能同时被i整除,则i即为最大公约数,

结束

③ i--,再回去执行②

1 #include 2 int main () /* 穷举法求最大公约数 */ 3 { 4 int m, n, a, b, i, t; 5 printf("Input two integer numbers:\n"); 6 scanf ("%d,%d", &a, &b);m=a; n=b; 7 for (i=1; i0; t-- ) 14 if ( a%t == 0 && b%t ==0 ) break; 15 */ 1 //穷举法求最小公倍数 2 for (i= a; ; i++ ) 3 if ( i % a == 0 && i % b ==0 ) break; 4 printf("The least common multiple:%d\n", i ) 5 6 //多个数的最大公约数和最小公倍数 7 for (i= a; i>0; i-- ) 8 if (a%i==0&&b%i==0&&c%i==0) break; 9 printf("The largest common divisor:%d\n", i); 10 for (i= a; ; i++ ) 11 if (i%a==0&&i%b==0&&i% c==0) break; 12 printf("The least common multiple:%d\n", i )


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭