如题,大家可以参考参考
class="java">package lesson12; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class lesson12 { /** * 输入两个正整数m和n,求其最大公约数和最小公倍数 */ public static void main(String args[]) { // List<Integer> list=new ArrayList<>(); Scanner scan = new Scanner(System.in); while (true) { List<Integer> list1 = new ArrayList<>(); List<Integer> list2 = new ArrayList<>(); List<Integer> list3 = new ArrayList<>(); System.out.println("输入两个整数"); int a = scan.nextInt(); int b = scan.nextInt(); int s=a; int s1=b; for (int i = 2; i <= a; i++) { while (a % i == 0) { a = a / i; list1.add(i); } } for (int i = 2; i <= b; i++) { while (b % i == 0) { list2.add(i); b = b / i; } } for (int i = 0; i < list1.size(); i++) { for (int j = 0; j < list2.size(); j++) { if (list1.get(i).equals(list2.get(j))) { list3.add(list1.get(i));// 最大公约数 list2.remove(j); break; } } } int sum = 1; System.out.print("这两个数的最大公约数为:"); for (int i = 0; i < list3.size(); i++) { sum = sum * list3.get(i); if(i<list3.size()-1) { System.out.print(list3.get(i)+"*"); } else { System.out.print(list3.get(i)+"="); } } System.out.println(sum); //由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积 System.out.println("这两个数的最小公倍数为:"+(s*s1)/sum); } } }
?