编写一个名为Boolean的函数isPrime,该函数将整数作为参数,如果参数为素数,则返回true,否则返回true.生成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;
}
Run Code Online (Sandbox Code Playgroud)
你需要检查primality arr[i]而不是i:
for(i = 0; i < 100; i++){
if(isPrime(arr[i])) console.log(arr[i]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |