找出max以内的所有质数
//找出max以内的所有质数
function prime(max) {
let starttime = Date.now()
max = Math.floor(max)
// 判断是否小于一,如果是那么就没有质数
if (max < 1) {
return []
};
// 定义一个数组来存放所有的质数
let primeArr = [];
// 如果传入的max为1 那么将1 添加到数组
if (max == 1) {
primeArr.push(1);
}
// 如果大于一
else if (max >= 2) {
primeArr.push(1);
primeArr.push(2);
let i = 2
while (i++ < max) {
// 定义一个临时变量
let b = 0
// 将比较的数开平方后向上取整,因为如果一个数是质数,那么他的因数一定有一个小于等于他的平方根
let num = Math.ceil(Math.sqrt(i))
// 用当前的数去挨个对它小的数取余
for (let j =2; j <= num; j++) {
// 如果余数为0,那么证明他不是质数
if (i % j == 0) {
// 定义的临时变量增加
b++;
// 找到一个后那就跳出此次for循环
break;
}
}
// 如果变量b为0 就证明没有余数,则是质数
if (b == 0) {
// 将这个质数加入到质数数组
primeArr.push(i)
}
}
}
return primeArr
}
console.log(prime(5));
//判断一个数是否是质数
function isPrime(num){
if(num==1||num ==2){
return true
}
let numSqrt = Math.ceil(Math.sqrt(num))
for(let i = 2;i < numSqrt;i++){
if (num % i == 0){
return false
}
}
return true
}
console.log(isPrime(10));
判断一个数是否是质数
//判断一个数是否是质数
function isPrime(num){
if(num==1||num ==2){
return true
}
let numSqrt = Math.ceil(Math.sqrt(num))
for(let i = 2;i < numSqrt;i++){
if (num % i == 0){
return false
}
}
return true
}
console.log(isPrime(10));