python 소수판별 중첩 for문 질문

조회수 1873회

이미지

정수 n 을 입력받아서 n초과 n*2 미만 중에서 소수를 리스트 L에 추가하려고 하는데요, 만약 n에 16을 입력하면 17까지만 실행하고 그 이상은 실행하지 않습니다. 제가 원하는건 17부터 31까지 돌려서 그 중에서 소수를 리스트에 추가하는건데요. 어디가 문제인건지 도저히 모르겠습니다.

1 답변

  • 불행히도 코드가 이미지로 올라와 있어서 실행시켜 보지 못했습니다만, 높은 확률로, primeChk = True 초기화 작업은 for i 바로 아래 for j 등장 직전 구간에서 수행돼야 할 겁니다. 안 그러면, 짐작컨대는, 단 한 번 primeChk = False 재할당이 발생한 이후로 primeChk는 두 번 다시 초기화 및 재사용이 되지 않아서, 어떤 i도 더 이상 append()되지 않을 겁니다. 변수명을 is_i_prime_number 같은 걸로 바꿔서 생각해 보면 특히 더욱 그렇습니다.

    아니면 할 수 없는데 한번 해보시고, 그래도 안 되면 코드를 텍스트로 복사해서 다시 올려 주세요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)