仅通过计算每个可能的解决方案无法找到该问题的解决方案。解决方案是如此之大,以至于需要数天(可能是数年)来计算。
有一个更聪明的解决方案是使用素数来记下这些数字。
给出的示例(2520 是可被数字 1 到 10 整除的最小数字)可以这样写:
1 = 1 (can be skipped) = 2^0 * 3^0 * 5^0 * 7^0
2 = 2 (prime) = 2^1 * 3^0 * 5^0 * 7^0
3 = 3 (prime) = 2^0 * 3^1 * 5^0 * 7^0
4 = 2^2 = 2^2 * 3^0 * 5^0 * 7^0
5 = 5 (prime) = 2^0 * 3^0 * 5^1 * 7^0
6 = 2 * 3 = 2^1 * 3^1 * 5^0 * 7^0
7 = 7 (prime) = 2^0 * 3^0 * 5^0 * 7^1
8 = 2^3 = 2^3 * 3^0 * 5^0 * 7^0
9 = 3^2 = 2^0 * 3^2 * 5^0 * 7^0
10= 2 * 5 = 2^1 * 3^0 * 5^1 * 7^0
现在可以除以这些的最小数字可以通过使用每个素数上使用的最大功率来计算:
2^3 * 3^2 * 5^1 * 7^1 = 2520
可以对数字 1 到 20 执行相同的操作(甚至手动)
最后提示:答案大于 100.000.000 但小于 10 亿,因此如果有效完成,可以在几分钟内计算出来