2520是最小的能被1-10中每个数字整除的正整数。
最小的能被1-20中每个数整除的正整数是多少?
原题目链接:Problem 5
分解质因数,不多说
public class Problem5 { private static HashSet<Integer> set = new HashSet<Integer>(); public static void main(String[] args) { for (int i = 1; i <= 20; i++) { getPrime(i); } Iterator<Integer> it = set.iterator(); int res = 1; while (it.hasNext()) { int prime = it.next(); res = prime * res; } System.out.println(res); } private static void getPrime(int value) { if (isPrime(value)) { set.add(value); } else { for (int i = 2; i < value / 2; i++) { int remainder = value % i; if (remainder == 0 || isPrime(i)) { set.add(i); } } } } public static Boolean isPrime(int value) { Boolean flag = true; for (int i = 2; i <= Math.sqrt(value); i++) { if (value % i == 0) { flag = false; break; } } return flag; } }