>  기사  >  웹 프론트엔드  >  JavaScript에서 100 이내의 소수를 찾는 방법

JavaScript에서 100 이내의 소수를 찾는 방법

PHPz
PHPz원래의
2023-04-24 10:47:401454검색

JavaScript는 다양한 문제를 해결하기 위해 매우 강력한 기능을 제공하는 일반적으로 사용되는 프로그래밍 언어입니다. 이번 글에서는 JavaScript를 사용하여 최대 100까지의 소수를 찾는 방법을 살펴보겠습니다.

소수는 1과 자기 자신을 제외한 다른 자연수로 나누어지지 않는 1보다 큰 자연수를 말합니다. 컴퓨터 과학에서는 소수가 암호화 및 암호화와 같은 분야에서 매우 중요한 역할을 하기 때문에 소수를 푸는 것은 매우 일반적인 문제입니다. 숫자가 소수인지 테스트하는 가장 간단한 방법 중 하나는 시행 분할입니다. 시행 분할의 기본 개념은 감지할 각 숫자 n에 대해 n을 2에서 n-1까지의 모든 숫자로 나누는 것입니다. n을 나눌 수 없으면 n은 소수입니다.

다음은 JavaScript에서 이 알고리즘을 구현하는 코드입니다.

//定义一个函数来检测一个数是否为素数
function isPrime(num) {
  //1和0不是素数
  if (num <= 1) {
    return false;
  }
  //2是素数
  if (num === 2) {
    return true;
  }
  //大于2的偶数不是素数
  if (num % 2 === 0) {
    return false;
  }
  //尝试从3到num-1之间的奇数去整除num
  for (let i = 3; i < num; i += 2) {
    if (num % i === 0) {
      return false;
    }
  }
  //如果都无法整除,那么num就是素数
  return true;
}

//测试函数
for (let i = 1; i <= 100; i++) {
  if (isPrime(i)) {
    console.log(i + "是素数");
  } else {
    console.log(i + "不是素数");
  }
}

위 코드에서는 먼저 숫자가 소수인지 감지하는 isPrime 함수를 정의합니다. 구체적인 구현 프로세스는 다음과 같습니다.

  1. num이 1보다 작거나 같으면 num은 소수가 아니며 false가 반환됩니다.
  2. num이 2와 같으면 num은 소수이고 true를 반환합니다.
  3. num이 2보다 큰 짝수이면 num은 소수가 아니며 false를 반환합니다.
  4. num을 3부터 num-1까지의 홀수로 나누어 보세요. 나눌 수 없는 경우 num은 소수이고 true가 반환됩니다.
  5. 위 조건 중 어느 것도 충족되지 않으면 num은 소수가 아니며 false가 반환됩니다.

다음으로 루프를 사용하여 1에서 100 사이의 각 숫자가 소수인지 테스트합니다. 소수이면 숫자를 출력하고, 그렇지 않으면 출력이 소수가 아닙니다.

여기서 출력 결과를 모두 표시하지는 않지만 실행 결과는 모두 정확합니다.

실제 개발에서는 100보다 큰 숫자가 소수인지 여부를 판단해야 할 수도 있습니다. 이 경우 시행 분할을 사용하면 2부터 num-1까지의 값의 개수가 매우 많기 때문에 시간이 많이 소요됩니다. 따라서 숫자가 소수인지 확인하려면 보다 효율적인 알고리즘을 사용해야 합니다. 일반적으로 사용되는 알고리즘 중 하나는 "에를리히 체법(Ehrlich sieve method)"으로, O(nloglogn)의 시간 복잡도에서 1부터 n까지의 모든 소수를 찾을 수 있습니다. 그러나 본 글에서는 시범분할에 대해 간략하게 소개하고 구현하는 것에 대해서만 설명한다.

위 내용은 JavaScript에서 100 이내의 소수를 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.