算法题目-素数判断问题

题目:

    请判断101-200之间有多少个素数,且输出所有的素数。

概念解析:

    质数(prime number)又称素数,质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。

javaScript:

// 测试函数

(这个测试函数的缺点是,不能确保题目给的范围内,是否有漏掉素数)

function testResult(arr){

  let flag = true

  if(Array.isArray(arr) && arr.length > 0){

    for(let i = 0; i< arr.length; i++){

      let cur = arr[i]

      if(!Number.isInteger(cur) || cur < 2){

        flag = false

        break

      }

      for(let j=2; j< cur; j++){

        if(cur % j == 0){

          flag =false

          break

        }

      }

      if(!flag){

        break

      }

    }

  } else {

    flag = false

  }

  return flag

}

// 判断素数函数

function judgePrimeFunc(startNum, endNum){

  let result = []

  if(startNum >= endNum){

    return result

  }

  for(let i= startNum; i< endNum+1; i++){

    let isPrime = true

    for(let j=2; j< i; j++){

      if(i%j == 0){

        isPrime = false

        break

      }

    }

    if(isPrime){

      result.push(i)

    }

  }

  return result

}

// 执行和测试

let testArr = judgePrimeFunc(101, 200)

let test = testResult(testArr)


参考链接:

    (百度百科, 素数)

你可能感兴趣的:(算法题目-素数判断问题)