Python에서 소수 인쇄
1에서 100까지의 소수를 나열하려고 시도하는 동안 Python 사용자가 출력이 다음과 같은 문제에 직면했습니다. 소수 대신 홀수를 표시했습니다. 이 문제를 해결하기 위해 문제를 자세히 조사하고 수정된 솔루션을 제공하겠습니다.
아래와 같이 초기 코드는 1부터 100까지의 숫자를 반복하고 각 숫자에 대해 나누어 떨어지는지 확인합니다. 2부터 그 자체까지 임의의 숫자:
<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>
이 접근 방식의 문제는 중첩 루프의 종료 기준에 있습니다. 숫자가 인수 i로 나누어지는 것으로 확인되면 내부 루프가 중단되고 print(num) 문이 실행됩니다. 그러나 외부 루프는 다음 i 값으로 동일한 숫자를 확인하기 시작합니다.
이 문제를 해결하려면 2부터 num의 제곱근까지의 모든 숫자로 나누어지는지 확인하도록 루프를 업데이트해야 합니다. 이 제수 중 어느 것도 숫자를 나누지 않으면 소수일 가능성이 높습니다. 수정된 코드는 다음과 같습니다.
<code class="python">for num in range(2, 101): prime = True for i in range(2, int(num**0.5) + 1): if num % i == 0: prime = False break if prime: print(num)</code>
이 솔루션은 더 작은 인수에 의한 나눗셈을 반복적으로 확인하여 소수를 효율적으로 감지합니다. 결과적으로 출력에는 1부터 100까지의 소수가 정확하게 표시됩니다.
위 내용은 Python에서 소수를 올바르게 인쇄하는 방법: 홀수 출력 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!