19、从键盘输入两个数字n,m,求解n,m的最小公倍数
2024-09-06 10:45:28
/*
从键盘输入两个数字n,m,求解n,m的最小公倍数
*/
#include <stdio.h>
#include <stdlib.h>
void getLowsetComMul(int num1,int num2)//m,n乘积除以最大公约数即为最小公倍数
{
int maxComMul = num1 * num2;
int remain = 1;
while(0 != remain)
{
/*假设用f(x,y)表示x,y的最大公约数,取k=x/y,b=x%y,
则x=ky+b,如果一个数能够同时整除x和y,则必能同时整除b和y;而能够同时整除b和y的数也必能同时整除x和y,
即x和y的公约数与b和y的公约数是相同的,其最大公约数也是相同的,则有f(x,y)=f(y,x%y)(y>0),
如此便可把原问题转化为求两个更小数的最大公约数,直到其中一个数为0,
剩下的另外一个数就是两者最大的公约数。*/
remain = num1 % num2;
num1 = num2;
num2 = remain;
}
printf("%d\n",maxComMul / num1);
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
while(0 < n && 0 < m)//m,n有一个为非正数时结束
{
//if()
getLowsetComMul(n,m);
scanf("%d%d",&n,&m);
}
return 0;
}
最新文章
- jquery使用注意点以及建议
- SmartImageView
- FIR.im Weekly - 技术是练出来的
- 汇编查看StackFrame栈帧
- Web 数据可视化
- win7 开wifi热点
- CCTV评论员评论步行者与奇才的比赛
- 使用java.util.Timer来周期性的执行制定的任务
- Hdu3714-Error Curves(三分)
- js工具常用方法
- 有关FTPS和VNP的详解
- C#6.0新特性之字符串嵌入 String Interpolation
- vue 基础-->;进阶 教程(2): 指令、组件
- Flink 核心技术浅析(整理版)
- python异常处理的两种写法
- H.264流媒体协议格式中的Annex B格式和AVCC格式深度解析
- 快速阅读《QT5.9 c++开发指南》2
- maven修改本地仓库,远程仓库与中央仓库
- 20170520 DP阶段总结
- [LeetCode]Combination Sum题解(DFS)