(파이썬) 소수 목록을 만들려고 하는데
조회수 436회
prime = [1,2,3,5,7]
factors = []
for i in range(11,10000000,2):
for j in range(2,i,2):
if i % j ==0:
factors.append(j)
if factors == []:
prime.append(i)
print(i)
else:
break
else:
continue
프라임 배열에 소수들을 오름차순으로 넣으려고 하는데 실행은 되는데 print(i)가 안 나오는데 어느 부분이 문제일까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
prime = [1,2,3,5,7] factors = [] for i in range(11,100): for j in range(2,i): if i % j == 0: factors.append(j) break if factors == []: print(i) prime.append(i) else: factors = [] print(prime)
소수 계산하는법이 1과 자기자신 제외하고 완벽히 나눠지지 않는 숫자라서.. 작성자님은 나머지 값이 0 이 나오면 factors 에다가 값을 넣고 그게 빈공간인지 아닌지로 판단해서 소수를 판단하는 코드를 짜고 싶으신거 같으신데
그걸 확인하는건 j loop이 완료되고 나서 하시는게 맞다고 생각합니다.(아마 이 부분에서 질문이 있으신거 같구요) 그리고 factors 는 잠시.. 임시저장소 같은거니깐 연산이후에는 비워줘야지 조건문에서 문제없을거 같구요.
댓글 입력