我正在研究Euler问题,并且正在尝试构建一个检查数字的函数,以查看它是否为素数。我收到有关该行的错误消息:
if (a)%(b)==0{
我的语法是错误的还是不可能在变量而不是整数上使用%?
var x = Math.sqrt(600851475143);
var y = Math.round(x);
y++;
console.log(y);
//find all of the prime numbers up to the square root number. Put them in an array.
//Check each ascending number against the prime numbers in the array to see if %=0
var primes = [2,3];
var a =(3);
while (a<y){
a++;
isPrime(a)
}
function isPrime(arr){
for (var i = 0; i < arr.length; i++){
var b = primes[i];
//next line is a problem
if (a)%(b)==0{
break
}else{
primes.push(a);
}
}
}
答案 0 :(得分:1)
您始终可以对变量使用操作。运行脚本时,变量将替换为与变量关联的实际值。
var a = 3,
b = 5;
if(a%b == 0) {}
等于
if(3%5 == 0) {}
您刚才在语句中使用了错误的语法:
if (a)%(b)==0 {}
应该是:
if(a%b == 0) {}
在JavaScript中,您需要使用波浪括号而不是变量来包装if语句。您的代码会触发语法错误,因为if语句写得不正确,并且它不会出现随机模数,等号和括号外的其他符号。
答案 1 :(得分:0)
是的,你可以使用它
但问题出现在if
循环
if (a)%(b)==0{ // Here it is assuming the the condition statement ends with )
在a
实际上它将是
if ((a)%(b)==0){ // Note braces pointed by ^^
^ ^
break
}else{
primes.push(a);
}
}
}