编写一个名为 isPrime
的 bool 函数,它接受一个整数作为参数,如果参数是质数则返回 true,否则返回 false。生成 100 个随机数并显示检查每个随机数的素性的结果。
这应该输出质数的随机数(在真或假检查之后),但我按顺序得到了 2 组数字的结果。
这是我的代码:
var arr = []
while(arr.length < 100){
var randomnumber=Math.ceil(Math.random()*100)
var found=false;
for(var i=0;i<arr.length;i++){
if(arr[i]==randomnumber){found=true;break}
}
if(!found)arr[arr.length]=randomnumber;
}
console.log(arr);
for(i = 0; i < 100; i++){
if(isPrime(i)) console.log(i);
}
function isPrime(num) {
if(num < 2) return false;
for (var i = 2; i < num; i++) {
if(num%i==0)
return false;
}
return true;
}
最佳答案
您需要检查 arr[i]
而不是 i
的素数:
for(i = 0; i < 100; i++){
if(isPrime(arr[i])) console.log(arr[i]);
}
关于javascript - 如何生成 100 个随机数并检查每个随机数的素数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32684122/