最小公倍數

描述
爲何1小時有60分鐘,而不是100分鐘呢?這是歷史上的習慣致使。
但也並不是純粹的偶然:60是個優秀的數字,它的因子比較多。
事實上,它是1至6的每一個數字的倍數。即1,2,3,4,5,6都是能夠除盡60。

咱們但願尋找到能除盡1至n的的每一個數字的最小整數m.

輸入 java

多組測試數據(少於500組)。每行只有一個數n(1<=n<=100). ide

輸出輸出相應的m。 測試

樣例輸入 code


2
3
4

樣例輸出 ip


2
6
12

import java.math.BigInteger;
import java.util.Scanner;

public class Main{

	//返回最小公倍數
	static BigInteger fun(BigInteger a,BigInteger b)
	{
		BigInteger k = a,m,n;
		if(a.compareTo(b)>0){
			m=a;
			n = b;
		}
		else{
			m=b;
			n=a;
		}

		while(n!=BigInteger.ONE){
			k=n;
			if(m.mod(n).equals(BigInteger.ZERO))
				return a.multiply(b).divide(k);
			n=m.mod(n);
			m=k;
		}
		return a.multiply(b);
	}
	static Scanner sc=new Scanner(System.in);
	static BigInteger a[]=new BigInteger[101];
	static{
		a[0]=BigInteger.ONE;
		a[1]=BigInteger.valueOf(1);
		a[2]=BigInteger.valueOf(2);
		int i;
		for(i=3;i<a.length;i++){
			a[i]=fun(a[i-1], BigInteger.valueOf(i));
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		while(sc.hasNext()){
			System.out.println(a[sc.nextInt()].toString());
		}
	}
}
相關文章
相關標籤/搜索