> 백엔드 개발 > C++ > C에서 숫자가 소수인지 효율적으로 결정하는 방법은 무엇입니까?

C에서 숫자가 소수인지 효율적으로 결정하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-28 15:46:16
원래의
230명이 탐색했습니다.

How to Efficiently Determine if a Number is Prime in C?

C에서 소수를 결정하는 방법

이 질문은 주어진 정수가 C에서 소수인지 여부를 결정하는 방법에 대해 설명합니다. 제공된 원본 C# 솔루션은 다음과 같습니다. :

static bool IsPrime(int number)
{
    for (int i = 2; i < number; i++)
    {
        if (number % i == 0 && i != number)
            return false;
    }
    return true;
}
로그인 후 복사

C에서 이를 구현하는 방법을 이해하기 위해 알고리즘:

  1. 숫자가 음수, 0 또는 1인지 확인하세요. 소수가 아닙니다.
  2. 2부터 숫자의 제곱근까지 반복합니다.
  3. 각 반복마다 숫자가 현재 값으로 나누어지는지 확인합니다.
  4. 나눌 수 있는 숫자는 소수가 아닙니다.
  5. 제수를 찾지 못한 채 루프가 완료되면 숫자는 다음과 같습니다. prime.

이 알고리즘을 C로 변환하면 다음을 얻을 수 있습니다.

int IsPrime(unsigned int number) {
    if (number <= 1) return 0; // zero and one are not prime
    unsigned int i;
    for (i=2; i*i<=number; i++) {
        if (number % i == 0) return 0;
    }
    return 1;
}
로그인 후 복사

원래 C# 솔루션과의 차이점은 다음과 같습니다.

  • bool은 a가 아닙니다. C 데이터 유형이므로 대신 int를 사용하고 0/1을 반환합니다.
  • stdbool.h 는 사용할 수 없다고 가정하므로 i를 수동으로 선언합니다.
  • 루프는 효율성을 위해 숫자의 제곱근까지 반복됩니다.

위 내용은 C에서 숫자가 소수인지 효율적으로 결정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿