求两个数的最大最大公约数和最小公倍数

Posted 小小青

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求两个数的最大最大公约数和最小公倍数相关的知识,希望对你有一定的参考价值。

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);  
        }  
          
    }  
}  

以上是关于求两个数的最大最大公约数和最小公倍数的主要内容,如果未能解决你的问题,请参考以下文章

如何求两数的最大公约数?

求两个数的最大公约数和最小公倍数

写一个方法,求两个数的最大公约数和最小公倍数。

求两个数的最大公约数和最小公倍数 C语言

求两个数的最大最大公约数和最小公倍数

Python 如何求得两个数的最大公约数