4948번 - 베르트랑 공준
베르트랑 공준을 풀면서, 소수를 미리 구해놓고 시작하는 방법도 있다는 것을 알았습니다.
그러나 다른 방법으로도 풀고싶어서 질문드립니다.
예시로 짜본 코드인데요, 기본논리는 에라토스테네스의 체를 활용하여 for문에서 반복가능한 객체를 줄이고자 했습니다.
예를 들어, n = 10일때 s1이 [3, 5, 7, 9], [5, 7], [7]이 출력되고 len(l)이 4로 출력될 것이라 예상했습니다.
하지만 실제로 돌려보니 len(l)은 예상했던대로 출력이 되었으나
s1의 경우, [3, 5, 7, 9], [5, 7], [5, 7], [7], [7], [], [], []가 출력되더군요.
제 수준에서 생각해보면, idx가 0~7부터 출력되는것을 보니 s1을 도중에 바꾸더라도 for문이 처음시작되었을때 받았던 s1의 idx는 그대로 남아있기 때문인듯합니다.
제가 원하는 결과를 얻으려면 코드를 어떻게 수정해야하는지 질문드립니다.
감사합니다.
댓글을 작성하려면 로그인해야 합니다.
lebesgue 3년 전
베르트랑 공준을 풀면서, 소수를 미리 구해놓고 시작하는 방법도 있다는 것을 알았습니다.
그러나 다른 방법으로도 풀고싶어서 질문드립니다.
예시로 짜본 코드인데요, 기본논리는 에라토스테네스의 체를 활용하여 for문에서 반복가능한 객체를 줄이고자 했습니다.
예를 들어, n = 10일때 s1이 [3, 5, 7, 9], [5, 7], [7]이 출력되고 len(l)이 4로 출력될 것이라 예상했습니다.
하지만 실제로 돌려보니 len(l)은 예상했던대로 출력이 되었으나
s1의 경우, [3, 5, 7, 9], [5, 7], [5, 7], [7], [7], [], [], []가 출력되더군요.
제 수준에서 생각해보면, idx가 0~7부터 출력되는것을 보니 s1을 도중에 바꾸더라도 for문이 처음시작되었을때 받았던 s1의 idx는 그대로 남아있기 때문인듯합니다.
제가 원하는 결과를 얻으려면 코드를 어떻게 수정해야하는지 질문드립니다.
감사합니다.