题目链接:here~~
采用素因子分解法求解(1~n的最小公倍数)
import java.math.BigInteger;
import java.util.Scanner;
public class Main
{
public static BigInteger f(int n)
{
int[] x = new int[n+1];
for(int i=1; i<=n; i++) x[i] = i;
for(int i=2; i<n; i++)
{
for(int j=i+1; j<=n; j++)
{
if(x[j] % x[i]==0)x[j]=x[j]/x[i]; //
}
}
BigInteger m = BigInteger.ONE;
for(int i=2; i<=n; i++)
m = m.multiply(BigInteger.valueOf((long)x[i]));
return m;
}
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
while(cin.hasNext())
{
int n=cin.nextInt();
System.out.println(f(n));
}
}
}