C语言基本算法 :1.求最大公约数与最小公倍数

一.最大公约数:

最大公约数目前有三种求法:更相减损术、辗转相除法以及穷举法。

1.更相减损术:

算法介绍:设两个整数数a和b,以较大数减较小数,得出的差与减数比较大小,再次使用较大数减较小数,直到减数与差相等,此时减数(差)即为最大公约数。

代码展示:

#include

#include

int main()

{

int a,b,c,i;

printf("请输入你比较的数字:");

scanf("%d",&a);

printf("请输入你比较的数字:");

scanf("%d",&b);

for(;a!=b;)

{

c=abs(a-b);

if(a>b)

a=c;

else if(a

b=c;

if(a==b)

printf("最大公约数为:%d",a);

}

return 0;

}

注意:

1.1 实际更相减损术中需要判断a与b是否均为偶数,若是则要以二约分,最终计算的结果还要乘以约掉的若干二的积。由于计算机编程语言的循环特性,此步可以忽略。

1.2 利用函数abs()时,此时注意预编译指令要加上#include,否则程序虽然可以运行,但是会报出一个警告。

2.辗转相除法:

算法介绍:设两个整数a和b,计算a%b得余数c,若c等于零,则b为最大公约数;若c不等于零,则将b的值赋给a,将c的值赋给b,重复计算a%b。

代码展示:

#include

int main()

{

int a,b,c;

printf("请输入数值1:");

scanf("%d",&a);

printf("请输入数值2:");

scanf("%d",&b);

while(1)

{

c=a%b;

if(c==0)

{

printf("最大公约数为:%d",b);

break;

}

else

a=b;

b=c;

}

return 0;

}

3.穷举法:

算法介绍:穷举法利用了计算机的特性,实际算法即为一个一个试,类似于求素数。

代码展示:

int main()

{

int i,a,b,t;

printf("请输入a的值:");

scanf("%d",&a);

printf("请输入b的值:");

scanf("%d",&b);

if(a>b)

{

t=a;

a=b;

b=t;

}

for(i=a;i>0;i--)

{

if((a%i==0)&&(b%i==0))

{

printf("最大公约数为:%d",i);

break;

}

}

}

注:对a和b的交换可以简化算法。

二.最小公倍数:

最小公倍数的求法一般来说比较简单,分为穷举和利用最小公倍数求解两种方法。

1.穷举法:

代码展示:

int main()

{

int i,a,b,t;

printf("请输入a的值:");

scanf("%d",&a);

printf("请输入b的值:");

scanf("%d",&b);

if(a

{

t=a;

a=b;

b=t;

}

for(i=a;;i++)

{

if((i%a==0)&&(i%b==0))

{

printf("最小公倍数为:%d",i);

break;

}

}

}

注:最小公倍数与最大公约数的求法类似,可自行比对。

2.利用最大公约数求最小公倍数:

算法介绍:存在这样的关系:a*b/最小公倍数=最大公约数。故直接利用最大公约数的求法即可。

代码展示:

#include

#include

int main()

{

int a,b,c,i,m,n;

printf("请输入你比较的数字:");

scanf("%d",&a);

printf("请输入你比较的数字:");

scanf("%d",&b);

m=a;

n=b;

for(;a!=b;)

{

c=abs(a-b);

if(a>b)

a=c;

else if(a

b=c;

if(a==b)

printf("最小公倍数为:%d",m*n/a);

}

return 0;

}

标签:公倍数,scanf,C语言,int,最大公约数,printf,include

来源: https://blog.csdn.net/m0_53173759/article/details/113031905

c语言编程最大公约数穷举发,C语言基本算法 :1.求最大公约数与最小公倍数相关推荐

  1. c语言变量相等问题穷举法,C语言穷举法经典例题.ppt

    <C语言穷举法经典例题.ppt>由会员分享,可在线阅读,更多相关<C语言穷举法经典例题.ppt(18页珍藏版)>请在人人文库网上搜索. 1.枚举法(穷举法),"笨人之 ...

  2. 有没有c 或c语言的短期培训学校,根河学c语言编程,根河学c语言编程的学校,根河学c语言编程报个培训班怎么样...

    根河学c语言编程,根河学c语言编程的学校,根河学c语言编程报个培训班怎么样 首页 > 软件 > 根河学c语言编程 作者:镀金池   发布时间:2017-11-30 11:02 另外,尽早调 ...

  3. 8051单片机c语言编程模板,完美的8051单片机C语言编程模板.doc

    完美的8051单片机C语言编程模板.doc <8051单片机C语言编程模板> [程序开始处的程序说明] /***************************************** ...

  4. c语言编程题输入两个直角边,C语言编程 直角三角形已知两边求第三边

    C语言编程题 求大神解答 好久没写C了,不知道对不对:intsum=0;intindex=0;for(;indexsum+=a[2][index];}returnsum; C语言编程题,求分段函数 刚 ...

  5. python求两个数的最大公约数穷举法_五十九、如何求N个数的最大公约数和最小公倍数...

    「@Author:Runsen」 ❝ 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化.「---- Runsen」 ❞ 上次介绍了短除法的因式分解,下面正式进入求解:「两个及 ...

  6. python求两个数的最大公约数穷举法_C++求最大公约数四种方法解析

    C++求最大公约数的四种方法思路,供大家参考,具体内容如下 将最近学的求最大公约数的四种方法总结如下: 第一种:穷举法之一 解释:拿其中一个数出来,用一个临时变量(tem)保存,每次都把那两个数除以这 ...

  7. 穷举法c语言吃饭,C语言穷举法经典例题

    枚举法(穷举法),"笨人之法":把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出.,分析:这是个不定方程--三元一次方程组问题(三个变量,两个方程)x+y+z=1005x ...

  8. CEVA-X16自由式编程-1-指令穷举

    note:本文是我的原始文章的中文重写版本,语义上可能有一定出入 使用Trace32软件穷举指令集 既然我们无法获取到官方的指令集文档和编译器,我想到了一个简单粗暴的点子:Trace32支持这个DSP ...

  9. 红灯停绿灯行c语言编程,基于物联网应用的《C语言程序设计》教学模式研究

    [摘要] 物联网是信息技术的最新发展发向,C语言程序设计又是物联网相关专业中的基础课,在物联网中的应用广泛,本文结合所任教的技工院校学生特点,在分析了C语言教学中存在的问题后,对C语言的教学模式进行了 ...

最新文章

  1. java解析XML获取城市代码
  2. linux下使用cat打开文件乱码
  3. java 获取内存大小_JVM面试题扩展:Java代码在JVM中的执行流程
  4. asp.net(c#)网页跳转七种方法小结
  5. 什么是利用计算机化的知识进行自动推理,基于实例模型的知识推理及其在自动阅卷系统中的应用...
  6. Kernel Samepage Merging | 同页合并
  7. Of course, Huawei has brought more than just
  8. 飞步神速!何晓飞团队完成无人车深度学习芯片流片,算力创国内新高
  9. python pip 重新安装mysql_解决Ubuntu pip 安装 mysql-python包出错的问题
  10. 9.看板方法---建立输入节奏
  11. 周立功上位机获取CAN通讯数据解析 V2.0
  12. Office2010每次打开都出现配置进度窗体
  13. UWB三维定位方式概述
  14. 简体中文与繁体中文互转
  15. Nacos如何实现统一配置管理
  16. 今天,王坚正式把“杭州城市大脑”作为礼物献给世界
  17. 递归-PTA循环日程表
  18. Oracle Partner Levels and Diamond Partners List
  19. PIM-SM中DR作用
  20. 利用相控阵馈源技术提高射电望远镜性能

热门文章

  1. DOTween的使用
  2. A survey on semi-supervised learning
  3. 字符串是否为空(isEmpty和isBlank的区别)
  4. 文档格式转换工具对比
  5. Android画虚线却显示为实线的解决方法
  6. 清楚浮动四种常用方法
  7. LVGL 8.0 lv_demo_widgets的学习
  8. windows11 取消windows登录密码 共享文件夹 输入法 去掉屏保广告 右键恢复原样
  9. Java(四):高效调试之IDEA热启动
  10. Python—re正则表达式