输入两个正整数m和n,求其最大公约数和最小公倍数

来源:互联网 发布:mysql查询面试题及答案 编辑:程序博客网 时间:2024/05/17 05:06
package com.zy.demo;

import java.util.Scanner;

/*输入两个正整数m和n,求其最大公约数和最小公倍数*/

/* 
* 在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,
* 取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回
* 较大的数,此数即为最小公约数,最小公倍数为两数之积除以最小公倍数。
* */

public class SixthCommonDiviser {
public static void main(String[] args) {
System.out.println("请输入两个数:");
//定义参数
int a,b;
Scanner s1=new Scanner(System.in);
Scanner s2=new Scanner(System.in);
a=s1.nextInt();
b=s2.nextInt();
SixthCommonDiviser scd=new SixthCommonDiviser();
int m=scd.division(a,b);
int n=a*b / m;
System.out.println("最大公约数是:"+ m);
System.out.println("最小公倍数是:" + n);

}

//定义一个方法
public int division(int x,int y){

int t;   //定义一个参数
if (x<y) {
t=x;
x=y;
y=t;
}
while(y!=0) 
{
if (x==y) 
{
return 1;
}else
{
int k=x%y;
x=y;
y=k;
}
}
return x;
}
}
0 0