码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-04-11 00:08:05      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:public   int()   AC   输入   最大公约数   add   lis   oid   []   

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

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

标签:public   int()   AC   输入   最大公约数   add   lis   oid   []   

原文地址:https://www.cnblogs.com/4910yxq/p/8783294.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!