Prime Check JavaScript

时间:2016-07-12 09:29:32

标签: javascript numbers

这段代码我做错了什么?它无法在控制台上打印任何内容。 这是问题的描述:

实现一个javascript函数,它接受一个包含整数N的数组,并使用一个表达式来检查给定的N是否为素数(即它是可整除的,只有自身的余数和1)。

return images["main"];

5 个答案:

答案 0 :(得分:4)

您的代码中有几处错误。

首先,您需要检查2和Math.sqrt(n)之间的每个整数。您当前的代码在4中返回true。

我不认为这是一个函数,因此您需要从return中省略return isPrime(n)并将其替换为打印出函数返回值的函数,例如{ {1}}或alert

console.log不是数字,而是数组。您需要输入数字,或使用n调用该函数。

正确的代码是

isPrime(n[0])

注意:您可以将var n = 2; function isPrime(n) { if (n < 2) { return false; } var isPrime = true; for(var i = 2; i <= Math.sqrt(n); i += 1) { if (n % i === 0) { isPrime = false; } } return isPrime; } alert(isPrime(n)); 更改为n += 1,它的工作方式相同。

答案 1 :(得分:1)

n是一个数组,您想要访问数组中的第一个元素并将其转换为数字。

尝试替换

return isPrime(n);

return isPrime(parseInt(n[0],10));

您的for循环条件也需要稍加修改

for(var i = 2; i <= Math.sqrt(n); i += 1) { //observe that i is not <= Math.sqrt(n)

答案 2 :(得分:0)

一些小错误:

var n = 2;//<--no need to put n in an array

function isPrime(n) {
if (n < 2) {
    return false;
}
var isPrime = true;

for(var i = 2; i < Math.sqrt(n); i += 1) {
    if (n % i === 0) {
        isPrime = false;
    }
}
return isPrime;
}

isPrime(n);//<--no need for "return"

答案 3 :(得分:0)

至于没有打印输出,这是因为您需要使用console.log

return isPrime(n);替换为console.log(isPrime(n));

答案 4 :(得分:0)

完整的工作代码:

var n = ['2', '3', '4', '5', '6', '7']; // you can use as many values as you want function isPrime(n) { if (n < 2) { return false; } var isPrime = true; for (var i = 2; i <= Math.sqrt(n); i += 1) { // Thanks to gurvinder372's comment if (n % i === 0) { isPrime = false; } } return isPrime; } n.forEach(function(value) { // this is so you can iterate your array with js console.log('is ' + value + ' prime or not? ' + isPrime(value)); // this so you can print a message in the console }); /* // Another approach of parsing the data, uncomment this piece of code and comment the one above to see it in action (both will give the same result) for (index = 0; index < n.length; ++index) { console.log('is ' + n[index] + ' prime or not? ' + isPrime(n[index])); // this so you can print a message in the console } */