题目:输入两个正整数number1和number2,求其最大公约数和最小公倍数。
算法:较大数和较小数取余,较小数除余数,一直到余数为0时,为最大公约数(辗转相除法);最大公倍数numbe1*number2/(最大公约数),下面直接上代码:
import java.util.Scanner; public class Max_Min { static int n1; public static void main(String[] args) { Max_Min m = new Max_Min(); /* * 此处输入两个数值,求出最小公倍数和最大公约数 */ Scanner s = new Scanner(System.in); System.out.print("请输入一个正整数:"); int number1 = Integer.parseInt(s.nextLine()); System.out.print("请再输入一个正整数:"); int number2 = Integer.parseInt(s.nextLine()); if(number1>number2){ //这里的if判断是为了,筛选出较大的数,功能函数里面取余数使用 m.function(number1,number2); } else{ m.function(number2, number1); } m.function2(number1, number2,n1); //此方法求最小公倍数 } public void function(int number1, int number2){ if(number1%number2 == 0){ System.out.println("最大公约数为:"+number2); getInt(number2); //传递最大公约数的值 }else{ function(number2, number1%number2); } } public void getInt(int number){ //得到最大公约数 this.n1 = number; } public void function2(int number1, int number2, int number) { //输出最大公倍数 System.out.println("最大公倍数是:"+number1*number2/number); } }
时间: 2024-10-28 16:39:16