质数的定义:
质数大于1,素数又被称为质数,有无限个,一个大于1的自然数,除了1和它本身,不能再被其他自然数整除,换句话说就是该数除了1和它本身以外不在有其他的因数,否则为合数
一、给一个数 N,判定这个数是否是素数。
方法一:
返回值为true或false
const n = Number(prompt('请输入n的值(n的值大于等于2):'))
function isPrime(n){
if(n==2){
return true
}else if(n>2){
for(let i=2;i<n;i++){
if(n%i==0){
return false
}else{
return true
}
}
}
}
console.log(isPrime(n)?'是素数':'是合数')
方法二: 有一个条件不满足就退出循环
const n = Number(prompt('请输入n的值(n的值大于等于2):'))
let sum = 0
function isPrime(n){
// 当n=2时不符合条件不进入循环直接返回条件值
for(let i=2;i<n;i++){
if(n%i==0){
sum++
return sum
}
}
return sum
}
console.log(isPrime(n)==0?'是素数':'是合数')
二、给一个数 N,把 2 到 N 之间的素数输出出来
let n = Number(prompt('请输入一个n(n>=2):'))
let isPrimeArr = []
for(let i=2;i<=n;i++){
let sum = 0
// 当i=2时不能进入内层循环,所以sum没进行运算,也能获得2是质数
for(let j=2;j<i;j++){
if(i%j==0){
sum++
break
}
}
if(sum==0){
isPrimeArr[isPrimeArr.length] = i
}
}
console.log(isPrimeArr)
三、判断n1-n2之间的素数
let arr = prompt('请输入一个区间(大于等于2,以-分开):').split('-')
let n1 = Number(arr[0])
let n2 = Number(arr[1])
if(n1>n2){
let mid = n1
n1 = n2
n2 = mid
}
var isPrimeArr = []
for(let i=n1;i<=n2;i++){
let sum = 0
for(let j=2;j<i;j++){
if(i%j==0){
sum++
break
}
}
if(sum==0){
isPrimeArr[isPrimeArr.length] = i
}
}
console.log(isPrimeArr)