Java 我如何在不使用暴力的情况下使用Euler 5?
在我目前的工作中,我有一个“有效”的解决方案。它适用于较小的数字(问题中的示例),但不适用于实际的问题,因为我是蛮力地强迫它,程序不会完成 以下是问题的解释: 2520是最小的数字,可以被1到10之间的每一个数字除,没有任何余数 可被1到20的所有数字均匀除1的最小正数是多少 1:可除,无余数 这是我目前的代码:Java 我如何在不使用暴力的情况下使用Euler 5?,java,algorithm,brute-force,Java,Algorithm,Brute Force,在我目前的工作中,我有一个“有效”的解决方案。它适用于较小的数字(问题中的示例),但不适用于实际的问题,因为我是蛮力地强迫它,程序不会完成 以下是问题的解释: 2520是最小的数字,可以被1到10之间的每一个数字除,没有任何余数 可被1到20的所有数字均匀除1的最小正数是多少 1:可除,无余数 这是我目前的代码: package Euler; public class Euler5 { public static void main(String[] args) { int de
package Euler;
public class Euler5 {
public static void main(String[] args) {
int desiredNumber = 20;
boolean exitLoop = false;
long counter = 1;
while(exitLoop == false) {
long loopCounter = 0;
for(int i=1; i<=desiredNumber; i++) {
if(counter % i == 0) {
loopCounter++;
}
}
if(loopCounter == desiredNumber) {
exitLoop = true;
System.out.println(counter);
}
counter++;
}
}
}
package;
公共类Euler5{
公共静态void main(字符串[]args){
int desiredNumber=20;
布尔exitLoop=false;
长计数器=1;
while(exitLoop==false){
长循环计数器=0;
对于(int i=1;i您正在寻找的数字是数字1,2,3,…,20中的
通过将每个数字拆分为其素因子的乘法(对于小数字来说很容易),找到LCM是相当容易的。您要查找的数字是数字1、2、3、…、20的
通过将每个数字拆分为其素数因子的乘法(对于小数字来说很容易),找到LCM是相当容易的。你没有计算机来回答这个问题。看:如果一个数字可以被1到20之间的每个数字除,这意味着它应该是相应幂的素数的乘法:
2**4 (from 16)
3**2 (from 9)
5
7
11
13
17
19
所以解决办法是
16 * 9 * 5 * 7 * 11 * 13 * 17 * 19 == 232792560
由于答案相当大,我怀疑暴力是否是一种合理的方法
在一般情况下(对于某些n>=2
),找出所有不超过n的素数:
2, 3, ..., m (m <= n)
你没有计算机来回答这个问题。看:如果一个数字可以被1到20的每一个数字除,这意味着它应该是相应幂的素数的乘法:
2**4 (from 16)
3**2 (from 9)
5
7
11
13
17
19
所以解决办法是
16 * 9 * 5 * 7 * 11 * 13 * 17 * 19 == 232792560
由于答案相当大,我怀疑暴力是否是一种合理的方法
在一般情况下(对于某些n>=2
),找出所有不超过n的素数:
2, 3, ..., m (m <= n)
Euler 5是projecteuler.net上的一个问题您应该使用solution@Cflo请在此处附上Euler 5的问题陈述,以便可能回答问题的人无需离开现场。您可以使用一张纸、一支笔(或一支铅笔)解决该问题Euler 5是projecteuler.net上的一个问题,您应该使用它来进行有效的计算solution@Cflo请在此处附上Euler 5的问题陈述,以便可能回答问题的人无需离开现场。您可以使用一张纸、一支笔(或一支铅笔)解决该问题还有一个计算器。非常感谢,但是欧拉问题(至少对我来说)的重点是获得编码技能:p@Cflo:对于编码技巧,请尝试实现我的算法(请参阅我的编辑作为可能的解决方案)。Euler项目的问题很有趣:示例很容易验证(包括暴力)但主要问题值得详细阐述。非常感谢这一点,然而Euler问题(至少对我来说)的重点是获得编码技能:p@Cflo:对于编码技巧,请尝试实现我的算法(请参阅我的编辑作为可能的解决方案)。Euler项目的问题很有趣:示例很容易验证(包括暴力)但主要问题值得详细阐述。