求两数最大公约数和最小公倍数(详解)
求两数最大公约数和最小公倍数
方法一:单独求解最小公倍数
若大数m是小数n的倍数,则大数m为所求的最小公倍数;若不是,另寻找一个能同时被两个整数的自然数。找到第一个后,break终止循环。
终止条件:
1.可把判定条件表示成循环变量满足的基本条件,如本例终止条件表示成i>0.
2.终止条件省略不写,利用循环体中的语句结束循环,如在找到第一个满足条件的自然数利用break语句结束循环。
3.代码如下:
# include<stdio.h>
int main()
{while(1){int i,num1,num2,temp;printf("please input two num:");scanf("%d%d",&num1,&num2);if(num1<num2){temp=num1;num1=num2;num2=temp;} //m是大数,n是小数for(i=num1;i>0;i--){ if(i%num1==0&&i%num2==0){printf("最小公倍数是%d\n",i);break;} //break终止循环,即找到第一个公共倍数即最小公倍数时停止} } //循环必须加在return之前,循环才能执行return 0;
}
4.运行结果
方法二 求解最大公因数和最小公倍数
1.题目:输入两个整数m和n,求其最大公约数和最小公倍数?
分析:利用辗转相除法,先求解最大公约数,最小公倍数=两数的乘积/最大公因数
2.辗转相除法
例如 113148 和70044
此时
最大公约数应为 5388
最小公倍数应为 113148*70044 / 5388 = 1,470,924
while(n!=0){temp=m%n;m=n;n=temp; //辗转相除法}
3.完整代码如下
# include<stdio.h>
int main()
{int m,n,num1,num2,temp;while(1){printf("please input two num:");scanf("%d%d",&num1,&num2);if(num1<num2){temp=num1;num1=num2;num2=temp;} //m是大数,n是小数m=num1;n=num2; //区分两数和公因数while(n!=0){temp=m%n;m=n;n=temp; //辗转相除法}printf("最大公约数是:%d\n",m);printf("最小公倍数是%d\n",num1*num2/m); //最小公倍数=两数乘积/最大公因数} //一直循环return 0;
}
4, 执行结果
最后按例附上,本人小白一枚,若上述内容有所纰漏错误,欢迎批评指正。
求两数最大公约数和最小公倍数(详解)相关推荐
- 求两数最大公约数,最小公倍数-Java
两数的最大公约数的计算是有数学规律的,程序只是按照规律辅助计算,其中包括了递归和循环两种实现.而最小公约数可由(m*n)/ (最大公约数)得到.具体代码如下: package test;import ...
- js求两数最大公约数和最小公倍数
// 最大公约数 console.log(gongyueshu(6, 8));function gongyueshu(a, b) {var c = a > b ? b : a;for (var ...
- python两个自定义函数_Python自定义函数实现求两个数最大公约数、最小公倍数示例...
本文实例讲述了Python自定义函数实现求两个数最大公约数.最小公倍数.分享给大家供大家参考,具体如下: 1. 求最小公倍数的算法: 最小公倍数 = 两个整数的乘积 / 最大公约数 所以我们首先 ...
- C语言实现辗转相除法和更相减损法求两数最大公约数,及求最小公倍数的方法
在学习从C语言过程中,我们会遇到一个题目,求两个整数的最大公约数,那么接下来分别介绍两种方法求最大公约数 1,辗转相除法 辗转相除法, 又名欧几里德算法(Euclidean Algorithm),是求 ...
- C语言求两个数最大公约数和最小公倍数
1.求两个数的最大公约数 1.1 普通实现方法 #include<stdio.h> int main() {int a = 0;int b = 0;scanf("%d %d&q ...
- C语言中求两数最大公约数的三种方法
1.穷举法 思路: 首先对输入的两个数x,y判断两者的大小,取两者中较小的数放入i中.然后用x%i;y%i,如果两者都为0,则此时i为最大公约数.如果其中有一个不为0,则i减1后再用x,y分别模上i( ...
- 200 300的完数 c语言,C语言求完数(完全数)(详解版)
问题描述 求某一范围内完数的个数. 如果一个数等于它的因子之和,则称该数为"完数"(或"完全数").例如,6的因子为1.2.3,而 6=1+2+3,因此6是&q ...
- 更相减损法 php,求两数最大公约数 - WAITING520的个人空间 - OSCHINA - 中文开源技术交流社区...
1.普通写法 /** * 普通写法 * @param numbera * @param numberb * @return */ public static int gcd(int numbera, ...
- java操练之求两数最大公约数的两种算法思路
代码: 1 public class Hello { 2 3 /** 4 * @param args 5 */ 6 public static void main(String[] args) { 7 ...
最新文章
- mysql建立联合索引,mysql建立唯一键,mysql如何解决重复记录联合索引
- 哈尔滨商业大学计算机与信息工程学院地址,计算机与信息工程学院
- 阿里巴巴电商平台架构演变之路
- c语言第七周答案,2017-mooc-C语言-第七周-答案
- 【机器学习基础】Python数据预处理:彻底理解标准化和归一化
- [译]震惊!RxJava 5 个不为人知的小秘密
- kettle-多文件合并
- Jaas demo 登陆验证
- DataFormatString--格式化字符串
- requests+正则表达式爬取豆瓣读书top250
- 计算机加入域后的用户名和密码,Windows自动改计算机名和加入域工具
- java 支付宝帐单_支付宝单笔提现转账到个人用户,java代码实现
- 1.4.17 实验17:ASBR
- java 1st 2nd 3rd 4th_为啥第一是1ST,第二是2ND,第三是3RD,第四开始都是TH呢1ST、2ND、...-3rd-英语-耿佬杜同学...
- C# 文字识别(OCR)
- 如何安装tushare
- 学习ROS常用的官方网站,学习资源整理
- 打造Ai作图studio需要哪些工具
- gensim相关功能函数及其案例
- STC89C52的IIC总线写EEPROM
热门文章
- .bin二进制文件转换为.txt(.bin)文件
- 计算机开机后无法启动win7,win7电脑突然进不了系统如何恢复?老司机教你解决电脑开机进不了系统...
- OpenCV DNN模块黑白图片上色修复
- VIEWGOOD(远古)直播时移技术——让高清网络电视“随心看”
- android 4.0模拟器启动不了,Android 4.0 framework源码修改编译,模拟器运行不起来,求助...
- SecureCRT 5.2.2版本下载和注册码
- Scheme 语言开发工具DrRacket下载,安装
- html5 电影选座位效果,为你的网页做出电影的过场效果
- 国内8大热门android论坛
- 质量管理知识点大盘点(之一)