>백엔드 개발 >파이썬 튜토리얼 >Python에서 효율적으로 소수를 식별하는 방법: 단계별 가이드

Python에서 효율적으로 소수를 식별하는 방법: 단계별 가이드

Susan Sarandon
Susan Sarandon원래의
2024-10-21 13:20:02769검색

How to Identify Prime Numbers Efficiently in Python: A Step-by-Step Guide

Python에서 효율적으로 소수 식별

주어진 범위 내에서 일련의 소수를 찾는 것은 일반적인 프로그래밍 작업입니다. Python에서 이를 달성하기 위해 우리는 논리적 순서의 루프와 조건문을 사용하여 소수를 결정합니다. 그러나 일부 초기 시도에서는 잘못된 결과가 나올 수 있다는 점에 유의해야 합니다.

소수 식별 코드 수정

원본 코드를 검사한 결과 심각한 결함이 드러났습니다. : 소수가 아닌 홀수를 잘못 인쇄합니다. 이 오류는 소수가 아닌 숫자를 효과적으로 식별하는 누락된 조건으로 인해 발생합니다. 문제의 세부 내용은 다음과 같습니다.

<code class="python">for num in range(1, 101):
    for i in range(2, num):
        if num % i == 0:
            break
        else:
            print(num)
            break</code>

이 문제를 해결하려면 숫자가 2와 그 자체 사이의 숫자로 나누어지는지 명시적으로 확인해야 합니다. 제수가 발견되지 않으면 소수입니다. 개선된 버전은 다음과 같습니다.

<code class="python">for num in range(2, 101):
    prime = True
    for i in range(2, num):
        if (num % i == 0):
            prime = False
    if prime:
        print(num)</code>

효율성을 위한 코드 최적화

성능 향상을 위해 주어진 값의 제곱근까지만 제수를 확인하는 것이 좋습니다. 숫자. 이 범위 내에서 제수가 발견되지 않으면 소수로 간주될 수 있습니다. 이 최적화를 통해 필요한 반복 횟수가 크게 줄어듭니다.

<code class="python">import math

for num in range(2, 101):
    if all(num % i != 0 for i in range(2, int(math.sqrt(num)) + 1)):
        print(num)</code>

추가 개선

소수가 더 크므로 홀수만 선택하여 코드를 더욱 효율적으로 만들 수 있습니다. 2보다 항상 홀수입니다. 수정된 코드:

<code class="python">import math
print(2)
for num in range(3, 101, 2):
    if all(num % i != 0 for i in range(3, int(math.sqrt(num)) + 1, 2)):
        print(num)</code>

위 내용은 Python에서 효율적으로 소수를 식별하는 방법: 단계별 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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