天天看点

Java最小公倍数

标题Problem A: 最小公倍数

Time Limit: 1 Sec Memory Limit: 128 MB

Description

两个正整数,计算这两个数的最小公倍数

Input

输入数据只有一行,包括两个不大于1000的正整数.

Output

输出数据也只有一行,给出这两个数的最小公倍数。

Sample Input Copy

10 14

Sample Output Copy

70

可能的Java代码:

import java.util.Scanner;
public class Main{

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();        
        int m = min(a, b);  
            
        System.out.print(a * b / m);
    }
    
    public static int min(int a, int b)
    {
        if(a < b)
        {
            int t = a;
            a = b;
            b = t;
        }
        while(b != 0)
        {
            if(a == b)
            {
                return a;
            }
            else
            {
                int k = a % b;
                a = b;
                b = k;
            }
        }
        return a;
    }
    
}
           

运行结果:

Problem: XXXX
    User: XXXXXXXXXXX
    Language: Java
    Result: Accepted
    Time:120 ms
    Memory:10240 kb    
           

另一种写法:(面对过程编程)

import java.util.*;

public class Main{

     public static void main(String args[]) {
         Scanner sc =new Scanner(System.in);
         int x=sc.nextInt();
         int y=sc.nextInt();
         int a=x*y;  //x*y
         int b=x%y;  //x%y
         while(b!=0)  //当存在余数且不为零,
         {      
             x=y;   //把y赋值给x
             y=b;   //把b赋值给y
             b=x%y; //此时的x%y(当x对y取余不为零时,原先的y%b)赋值给b
         }
         System.out.println(a/y);  //
     }
}
           

运行结果:

Problem: XXXX
    User: XXXXXXXXXXX
    Language: Java
    Result: 正确
    Time:117 ms
    Memory:10188 kb	
           

其他的可能Java代码(更简洁的不要不要好不好):

import java.util.Scanner;
 
public class Main{

        public static void main(String[] args)
        {
            Scanner input=new Scanner(System.in);
            int m=input.nextInt();
            int n=input.nextInt();
            int max=(m>n)?m:n;
            for(int i=max;i<m*n;i++)
            {
                if(i%m==0&&i%n==0)
                {
                System.out.println(i);
                break;
                }
          }
          
     }
}
           

运行结果:

Problem: XXXX
    User: XXXXXXXXXXX
    Language: Java
    Result: Accepted
    Time:115 ms
    Memory:10208 kb
           
END