Problem06 求最大公约数及最小公倍数
题目:输入两个正整数m和n,求其最大公约数(m,n)和最小公倍数[m,n]。
程序分析:利用辗转相除法。
利用辗除法:用较大数除以较小数,再用出现的余数(第一余数)去除除数,
再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。
最后的除数就是这两个数的最大公约数。
最小公倍数:两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(m,n)×[m,n]=m×n。
import java.util.*; public class Problem06 {
//题目:输入两个正整数m和n,求其最大公约数(m,n)和最小公倍数[m,n]。
//利用辗除法:用较大数除以较小数,再用出现的余数(第一余数)去除除数,
//再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。
//最后的除数就是这两个数的最大公约数。
//最小公倍数:两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(m,n)×[m,n]=m×n
public static void main(String args[]) {
System.out.println("请输入两个正整数:");
Scanner s = new Scanner(System.in);
int m = s.nextInt();
int n = s.nextInt();
System.out.println(m+"和"+n+"的最大公约数是:"+zhanzhuan(m,n));
System.out.println(m+"和"+n+"的最小公倍数是:"+gongbei(m,n));
s.close();
} //辗转相除法找出最大公约数
public static int zhanzhuan(int m, int n) {
//找出较大的数
if(m<n) {
int temp = m;
m = n;
n = temp;
}
while(true) {
//
int r = m % n;
if(r==0) {
return n;
}else {
m = n;
n = r;
}
}
} //最小公倍数:两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(m,n)×[m,n]=m×n
public static int gongbei(int m, int n) {
return m*n / zhanzhuan(m,n);
}
}
输入30,45,输出结果:
请输入两个正整数:
30
45
30和45的最大公约数是:15
30和45的最小公倍数是:90
Problem06 求最大公约数及最小公倍数的更多相关文章
- c语言求最大公约数和最小公倍数
求最大公约数和最小公倍数 假设有两个数a和b,求a,b的最大公约数和最小公倍数实际上是一个问题,得出这两个数的最大公约数就可以算出它们的最小公倍数. 最小公倍数的公式是 a*b/m m为最大公约数 因 ...
- JAVA 基础编程练习题6 【程序 6 求最大公约数及最小公倍数】
6 [程序 6 求最大公约数及最小公倍数] 题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数. 程序分析:利用辗除法. package cskaoyan; public class csk ...
- 辗转相除法求最大公约数和最小公倍数【gcd】
要求最小公倍数可先求出最大公约数 设要求两个数a,b的最大公约数 伪代码: int yushu,a,b: while(b不等于0) { yushu=a对b求余 b的值赋给a yushu的值赋给b } ...
- Java求最大公约数和最小公倍数
最大公约数(Greatest Common Divisor(GCD)) 基本概念 最大公因数,也称最大公约数.最大公因子,指两个或多个整数共有约数中最大的一个.a,b的最大公约数记为(a,b),同样的 ...
- c语言求最大公约数和最小公倍数(转)
最大公约数与最小公倍数的求解是很多初学C的人所面临的一道问题.当然这道问题并不难解答,也有很多人已经写过相关的博客,我在此书写此篇博客,一是为了让自己能够夯实基础,另外就是希望能够帮到和我一样的初学者 ...
- Java50道经典习题-程序6 求最大公约数及最小公倍数
题目:输入两个正整数m和n,求其最大公约数和最小公倍数.分析:用辗转相除法求最大公约数 两个数的最大公约数:设两个数分别为n和m,(n>=m);用定义一个变量i,使用for循环,将i的取值 ...
- 求最大公约数和最小公倍数_python
"""写两个函数,分别求两个整数的最大公约数和最小公倍数,调用这两个函数,并输出结果.两个整数由键盘输入.""" ''' 设两个整数u和v, ...
- c语言:辗转相除法求最大公约数、最小公倍数
辗转相除法,又称欧几里得算法.两个正整数a和b(a>b),它们的最大公约数等于余数c和较小的数b之间的最大公约数.最小公倍数=两数之积/最大公约数 #include <stdio.h> ...
- python实现求最大公约数与最小公倍数
记录python实现最大公约数&最小公位数两种算法 概念 最大公约数:指两个或多个整数共有约数中最大的一个 最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就 ...
随机推荐
- ZROI2018普转提day1t1
传送门 分析 我们先二分一下最终的平均值mid,然后让序列中的每一个数都减去这个mid,之后用新序列的前缀和建一棵线段树,枚举起点i,然后求出此时在i+L-1~i+R-1范围内的前缀和的最大值,用这个 ...
- centos安装中文字体
1.查看字体列表 2.将需要上传的字体上传至linux服务器/usr/share/fonts/chinese目录下 3.修改chinese目录的权限 chmod -R /usr/share/fonts ...
- Spark的序列化
spark的序列化主要使用了hadoop的writable和java的Serializable. 说到底就是使用hadoop的writable替换了java的默认序列化实现方式. class Seri ...
- Windows下启动redis错误1067:进程意外中止
已解决: 在redis-64.3.0.503文件夹下新建一个空文件夹,命名为logs,如下图所示: 最后成功了 开启服务:redis-server --service-start
- markdown编辑器使用教程
网上的资料很多,我收集整理学习下. 我是下划线 *** 我是标题 我也是标题 ewq着重ewqe 列表1 列表2 我也是 我也是 有序列表 有序列表 //我是代码 int x=0; int y=x; ...
- ASP.NET Core 部署到Cont OS 服务器
一.前言 当 asp.net core 发布以后,实现了跨平台.基于好奇,我就测试了一下 core 项目部署到 linux 服务器.感觉一路还是有所收获,接下来记录一下操作流程. 工具:window ...
- 「BZOJ 1791」「IOI 2008」Island「基环树」
题意 求基环树森林所有基环树的直径之和 题解 考虑的一个基环树的直径,只会有两种情况,第一种是某个环上结点子树的直径,第二种是从两个环上结点子树内的最深路径,加上环上这两个结点之间的较长路径. 那就找 ...
- H - the Sum of Cube(水题)
A range is given, the begin and the end are both integers. You should sum the cube of all the intege ...
- Java基础之开发工具Eclipse的使用
Eclipse简介 Eclipse是由IBM公司投资4000万美元开发的集成开发工具.它是目前最流行的Java集成开发工具之一,基于Java语言编写,并且是开放源代码的.可扩展的(Integrated ...
- loj#6040. 「雅礼集训 2017 Day5」矩阵(线性代数+递推)
题面 传送门 题解 我的线代学得跟屎一样看题解跟看天书一样所以不要指望这题我会写题解 这里 //minamoto #include<bits/stdc++.h> #define R reg ...