Skip to content

素数 / isPrime

题目描述

判断一个数字是否是素数,素数是除了 1 和它本身之外没有其他因子,如 2、3、5、7、11。

Code

javascript
function isPrime(num) {
  if (num < 2) return false;
  for (let i = 2; i <= Math.sqrt(num); i++) {
    if (num % i === 0) {
      return false;
    }
  }
  return true;
}

Test Cases

javascript
const { isPrime } = require('../docs/algo/number/isPrime.js');

describe('isPrime', () => {
  it('zero', () => {
    expect(isPrime(0)).toBeFalsy();
  });
  it('negativeNumber', () => {
    expect(isPrime(-1)).toBeFalsy();
    expect(isPrime(-3)).toBeFalsy();
  });
  it('one', () => {
    expect(isPrime(1)).toBeFalsy();
  });
  it('should be true', () => {
    expect(isPrime(2)).toBeTruthy();
    expect(isPrime(3)).toBeTruthy();
    expect(isPrime(5)).toBeTruthy();
    expect(isPrime(7)).toBeTruthy();
    expect(isPrime(11)).toBeTruthy();
  });
});