求两个数的最大公约数和最小公倍数
来源:互联网 发布:js 寻找字符串 编辑:程序博客网 时间:2024/06/05 17:46
问题:求两个数的最大公约数和最小公倍数
(1)问题分析:最繁琐基本的是立马先想到用定义去做,将所有共同满足的公约数放入一个数组中国,再从数组中找出最大的就是最大公约数
即:最大公约数:.把能够整除某一个数的数,叫做这个数的约数。几个数所公有的约数叫这几个数的公约数。公约数中最大的一个叫做这几个数的最大公约数。
最小公倍数:几个数所公有的倍数,叫做这几个数的公倍数。公倍数中最小的一个(零除外)叫做这几个数的最小公倍数。
//例子都是以求最大公约数为目的介绍方法,最小公倍数即是最大公约数与两个数与最大公约数的余数的乘积或者是两个数的乘积除以最大公约数即为最小公倍数
package Day11;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int i=sc.nextInt();
int j=sc.nextInt();
Test tt = new Test();
tt.fun(i, j);
}
public void fun(int i,int j)
{
int t=0;
int[] array = new int[10];
if(i<j)
{
for(int a=2;a<i;a++)
{
if(i%a==0&&j%a==0)
{
array[t++]=a;
}
}
System.out.println(max(array));
}
}
public int max(int[] array)
{
int max=array[0];
for(int i=0;i<array.length;i++)
{
if(array[i]>=max)
{
max=array[i];
}
}
return max;
}
}
(2)使用辗转相除法
package Day11;
import java.util.*;
public class Test1{
static Scanner sc =new Scanner(System.in);
static int i = sc.nextInt();
static int j = sc.nextInt();
public static void main(String[] args){
max_min(i,j);
}
//求最大公约数和最小公倍数
private static void max_min(int m, int n){
int temp = 1;
int yshu = 1;
int bshu = m*n;
if(n<m){
temp = n;
n = m;
m = temp;
}
while(m!=0){
temp = n%m;
n = m;
m = temp;
}
yshu = n;
bshu /= n;
System.out.println(i+"和"+j+"的最大公约数为"+yshu);
System.out.println(i+"和"+j+"的最小公倍数为"+bshu);
}
}
(3)使用递归方法(简单)
package Day11;
import java.util.*;
public class Test {
/**
* @param args
*/
static int y=1;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
int j = sc.nextInt();
Test tt = new Test();
System.out.println(tt.fun(i, j));
}
public int fun(int i,int j)
{
if(i<j)
{
for(int a=2;a<i;a++)
{
if(i%a==0&&j%a==0)
{
i=i/a;
j=j/a;
y=y*a;
fun(i,j);//难点:要跳出自己函数调用出口,明白递归真谛,谁调用,跳出时从哪儿跳出接着往下执行。
break;
}
}
}
return y;
}
}
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数?
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- [笔记分享] [RPM] msm8610 RPM 流程
- 单链表删除头结点时出错解决方法
- CSS3二维变形
- JavaBean转换为Csv
- Ubuntu启动后循环登录界面
- 求两个数的最大公约数和最小公倍数
- Codeforces Round #431 (Div. 2) A B C D E
- Codeforces 854B Maxim Buys an Apartment
- Java系列-Set、List、Map的遍历总结
- Java基础学习(四)--代码块的问题
- Gson @SerializedName
- LeetCode-29-Divide Two Integers 智障题
- ID生成器
- 利用object.defineProperty实现数据与视图绑定