저는 파이썬을 처음 접했고 프로젝트 오일러 문제를 수행하여 프로그래밍을 연습하려고합니다. 7th problem을 해결하기 위해, 나는 for 루프를 사용하여 간단한 프라임 생성 함수를 작성하기로 결정했다.파이썬의 소수 생성자가 소수 대신 여러 개의 합성물을 반환합니다.
primes = [2]
for n in range(2, 10):
for m in range(2, n):
if not(n % m):
primes.append(n)
print primes
출력 대신 내가 의도의 [2,4,6,6,8,8,9]
이다, 즉 [2,3,5,7]
:
여기 내 코드입니다. 수학은 정확합니다. n
, 2보다 큰 자연수를 선택하십시오. 1보다 큰 모든 자연수가 n
보다 작 으면 n
이 m
으로 나눌 수 있는지 확인하십시오. 그렇지 않다면 n을 소수의리스트에 추가하십시오. 아무도 내 코드에 문제가 있다고 말할 수 있습니까?
P. 소수를 생성하는 몇 가지 다른 (더 나은) 방법이 있다는 것을 알고 있지만, 나는 접근법 (코드)을 만드는 데 관심이있다.
우수 답변! 당신의 도움을 주셔서 감사합니다. – chubbycantorset
제안에 따라 break 및 else 문을 추가하고 [2, 3, 5, 5, 5, 7, 7, 7, 7, 7, 9]을 출력으로 보았습니다. 5와 7을 여러 번 반환하는 이유를 알고 있습니까? – chubbycantorset
다른 사람을 잘못 넣었습니까? 그것은 내가 제출 한 정확한 코드를 실행할 때 얻는 결과가 아닙니다. – lunixbochs