首页 > 其他 > 详细

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

时间:2018-04-10 23:03:40      阅读:147      评论:0      收藏:0      [点我收藏+]

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!