【发布时间】:2015-05-07 22:54:05
【问题描述】:
这是受到 Project Euler Q3 的启发。所以大家以前都见过。没看过的话-->https://projecteuler.net/problem=3
我不是在寻求问题的解决方案。
递归对我来说仍然很新。我将这段代码拼凑在一起,它给了我正确的解决方案(嗯,它给了我正确的因素),但是,我只能设法让它输出到控制台,而我想让它返回一个值可以在其他地方使用的某种类型,可能用于某种类型或最大/最小类型的东西。我在想也许是一个包含因素的数组。就目前而言,我知道每当我在函数内部初始化一个数组时,它都会在每次递归调用函数时重新初始化。所以这没有奏效。
function primefy(n) {
var isPrime = true;
for (var i = 2; i < n; i++){
if(n % i === 0){
isPrime = false;
console.log(i);
primefy(n/i);
break;
}
}
if (isPrime){
console.log(n);
}
}
primefy(prompt("A number please?"));
如果我喂它 8 它将记录 2 2 2、18 产生 2 3 3 等等。数学似乎是正确的,但显然实现是关闭的。
【问题讨论】:
-
@JaredFarrish 将其作为答案发布。
-
@JaredFarrish - 有解释
标签: javascript recursion factorization