package java;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class java {
/**
* 输入两个正整数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);
}
}
}
原文地址:https://www.cnblogs.com/4910yxq/p/8783294.html