[c语言]最小公倍数和最大公约数(详细步骤求解)

1.(求解前需知)

假定你有两个数a,b。首先,你需要了解的是 a*b=两者的最大公约数 * 最小公倍数。

也就是说你只要求解出其中一个,就可以得到另外一个。理论存在,代码走起。

2.确保a为最大数,b为最小数

在编译之前,你需要保证的是数a为二者中的最大数,数b为二者中的最小数。可以建立临时变量temp,利用if语句完成此需求

if(a<b)
{temp = a;a = b;b = temp;
}

3.求解最大公约数

常用方法为①辗转相除法,②循环求余法(穷举法)

①辗转相除法。

顾名思义,就是①第一步的除数变成下一步的被除数,②第一步求得的余数变成下一步的除数,循环多次,当等到余数为0时,此时的除数就是最大公约数。理论存在,代码走起。

假设r为二者的余数。

while(b!=0)
{r= a % b;a = b;b = r;
}
return a;

②循环求余法。

顾名思义,最大公约数要求a和b都能整除,最极限的情况是b就为a的最大公约数。那么我们可以利用for循环来完成上述要求,就是令循环的初始值i为b(两者中的最小数),让a取余i为0的同时b取余i也为0,无法同时为真,就让i减1,继续执行上述条件,直到a取余i为0的同时b取余i也为0,就立刻跳出循环。(因为求的是最大公约数,不是约数,得到即可终止。)理论存在,代码走起。

for(i=b;i>0;i--)
{if(a%i==0&&b%i==0){printf("最大公约数为%d\n",i);break;}
}

4.求解最小公倍数。

①利用a*b/最大公约数=最小公倍数。②循环求余法(穷举法)

①可以配合前面的代码。

设置一个全局变量p=a*b(负责存放二者的乘积),p/i(上面求得的最大公约数)即可得最小公倍数。

p=a*b;
printf("最小公倍数为%d\n",p/i);

②循环求余法。

与上面求最大公约数差不多,我们先用j表示最小公倍数,最小公倍数的要求是j能整除a的同时也能整除b,即要求 j取余a=0的同时j取余b也为0,极限情况是a就是二者中的最小公倍数。那我们利用for循环,令j=a,j取余a为0的同时j取余b也为0,无法同时为真,就令j加1,直到j取余a为0的同时j取余b也为0就跳出循环.(因为求的是最小公倍数,不是倍数,得到即可终止。)理论存在,代码走起。

for(j=a;j>0;j++)
{if(j%a==0&&j%b==0){printf("最小公倍数为%d\n",j);break;}
}

5.完整代码如下:

①同时求最大公约数和最小公倍数

#include<stdio.h>
int POTATO1(int a,int b)
{int r,temp=0;if( a < b)//交换a,b,保证最大数放在a中,最小数放在b中{temp=a;a=b;b=temp;}while(b){r=a % b;//求a/b的余数a=b; b=r;}return a;//返回求得的最大公约数
}
int main()
{int a,b,p;
printf("请输入两个正整数a,b:\n");
scanf("%d %d",&a,&b);
p=a*b;
printf("它们的最大公约数为:%d\n",POTATO1(a,b));
printf("它们的最小公倍数为:%d\n",p/POTATO1(a,b));
}

②单独求解

最大公约数

#include<stdio.h>
int main()
{int a, b, temp, i;printf("请输入两个正整数a,b:\n");scanf("%d%d", &a, &b);if(a<b)  /*比较大小,使得a中存储大数,b中存储小数*/{ /*交换a和b的值*/temp=a;a=b;b=temp;}for(i=a; i>0; i--)  if(a%i==0 && b%i==0){printf("它们的最大公约数为%d\n", a, b, i);break;}return 0;
}

最小公倍数

#include<stdio.h>
int main()
{int a, b, temp, j;printf("请输入两个正整数a,b:\n");scanf("%d%d", &a, &b);if(a<b)  /*比较大小,使得a中存储大数,b中存储小数*/{temp = a;a = b;b = temp;}for(j=a; j>0; j++)  if(j%a==0 && j%b==0){printf("它们的最小公倍数为%d\n", a, b, j);break;}return 0;
}

如果看到这里感觉有帮助的话,请给土豆哥点个赞哦,嘻嘻!!!

[c语言]最小公倍数和最大公约数(详细步骤求解)相关推荐

  1. svn中文语言包安装(最详细步骤)+Language Pack+TortoiseSVN 安装

    原文链接:https://blog.csdn.net/massillon/article/details/102780782 svn中文语言包安装(最详细步骤) 一. 查看自己的SVN 版本(这里省略 ...

  2. c语言求最小公倍数和最大公约数三种算法

    C语言求最小公倍数和最大公约数三种算法(经典) 求最小公倍数算法: 最小公倍数=两整数的乘积÷最大公约数 求最大公约数算法: (1)辗转相除法 有两整数a和b: ① a%b得余数c ② 若c=0,则b ...

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

    C语言求最小公倍数和最大公约数三种算法(经典) 最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,其中一个最小的公倍数是他们的最小公倍数,同样地,若干个整数公有的倍数中最小的正整数称为 ...

  4. 三、Hive数据仓库应用之Hive数据操作语言(超详细步骤指导操作,WIN10,VMware Workstation 15.5 PRO,CentOS-6.7)

    Hive远程模式部署参考: 一.Hive数据仓库应用之Hive部署(超详细步骤指导操作,WIN10,VMware Workstation 15.5 PRO,CentOS-6.7) Hive数据定义语言 ...

  5. c语言编写音乐播放器完整代码(mciSendString函数的使用方法,第一次使用Visual Studio 2019的详细步骤)

    本文会尽量让和笔者一样只有一点点可怜的c语言基础的小白看懂,并写出自己的音乐播放器. 笔者使用的编译器是Visual Studio 2019,直接在官网下载就行了.下面是Visual Studio 2 ...

  6. c语言如何判断最小公倍数,c语言如何求最大公约数和最小公倍数?

    推荐教程:<C视频教程> c语言如何求最大公约数和最小公倍数? c语言求最大公约数和最小公倍数的方法: 求最大公约数算法: 有两整数a和b: ① a%b得余数c ② 若c=0,则b即为两数 ...

  7. 在虚拟机中,安装Windows10各种语言版本安装详细步骤-举例韩语的ISO安装详细过程

    根据之前的文章–VMware16安装Win10系统 执行到这里的步骤之后, (1)找到win10 iso的安装文件"Windows 10 x64.vmx" 删除行: firewar ...

  8. vc 写c语言程序步骤,VC++ 6.0编写程序的详细步骤

    想知道VC++ 6.0工具如何编写程序吗,可能有些朋友还不熟悉,我们一起去了解一下VC++ 6.0编写程序的详细步骤吧. VC++ 6.0编写程序的详细步骤 vc++6.0的菜单简洁,工具明了,这里以 ...

  9. C语言实验——最小公倍数和最大公约数_JAVA

    Description 从键盘输入两个正整数,求这两个正整数的最小公倍数和最大公约数,并输出. Input 输入包括一行. 两个以空格分开的正整数. Output 两个整数的最小公倍数和最大公约数. ...

最新文章

  1. ML之SVM:利用SVM算法对手写数字图片识别数据集(PCA降维处理)进行预测并评估模型(两种算法)性能
  2. sqlerver 字符串转整型_mssql sqlerver 脚本 计算数据表的结余数的方法分享
  3. maven版本控制实战
  4. usaco1.4.4(milk3)
  5. 【渝粤教育】电大中专职业健康与安全_1作业 题库
  6. 质问微软 WP8.1开发HTTPS 真费劲
  7. 【Java】数据结构——队列(图文)
  8. 音视频开发(10)---nginx-rtmp视频流服务器搭建
  9. 更新尺寸调用什么方法_Java 多线程启动为什么调用 start() 方法而不是 run() 方法?...
  10. ICE Tester method viewer 的安装和使用,和客制化代码配合使用
  11. 数据结构与算法的实现 —— 结点定义与数据结构的选择
  12. table列最小宽度 vue_Vue组件设计 - 先别管view
  13. Linux yum安装java环境
  14. 计算机组成原理 罗克露 pdf,罗克露计算机组成原理课件(一).pdf
  15. linux ubuntu版本选择,如何选择一个合适的Ubuntu版本
  16. vr软件测试,如何进行VR可用性测试?
  17. One Drive 回收站文件太多时无法清空回收站解决办法
  18. linux模拟树莓派,使用QEMU模拟树莓派Raspberry Pi
  19. 【Xgen UE】将Xgen制作好的毛发导入UE
  20. MyEclipse 优化

热门文章

  1. ECCV 2020 Spotlight,COCO关键点检测冠军算法RSN解析
  2. 无人机探测雷达2022年全球行业分析报告
  3. 【毕业季】研究生の毕业总结
  4. [NLP]高级词向量之谷歌BERT详解
  5. 简历上把同事干的活都写上,背调会被发现吗?同事把活都干完了,导致我没事干了!...
  6. 电动汽车感应电动机优化控制与仿真分析
  7. Android wifi sniffer log总结分析
  8. Advanced PDF Generator-SEO狼术
  9. 【欧拉公式】借助简单的球面几何证明欧拉公式
  10. JDK安装教程,Win11环境