tksgk7411   1년 전

90%에서 오류가 뜨는데 모르겠습니다.. 반례좀 부탁드립니다. 

yup0927   1년 전

1이랑 2의 소수 판정이 이상합니다.

tksgk7411   1년 전

좀 더 자세히 설명이 가능할까요?? 

yup0927   1년 전

15번 줄의 i = M ~ N에서 i에 1이나 2가 들어가면 판정이 이상하게 됩니다.

i = 1일 경우는 16번 줄을 넘기고 17번 줄에서 isPrime = true가 되고, 18번 줄의 for문을 전부 스킵하게 됩니다.

최종적으로 24번 줄에서 isPrime이 true기 때문에 1이 출력 됩니다. (하지만 1은 소수가 아닙니다.)

i = 2일 경우는 16번 줄에서 i % 2 == 0이 true라서 continue로 넘어가고, 17~24번 줄이 실행되지 않습니다.

그렇게 2는 출력이 되지 않습니다. (2는 소수입니다.)


여담으로 소수 판정을 매 수마다 하지 않고 미리 처리해 놓은 뒤에 바로바로 출력해주는 방법도 있습니다.

추후 에라토스테네스의 체로 구현하시는 것도 추천드립니다.

tksgk7411   1년 전

자세한 설명 감사드립니다. 

댓글을 작성하려면 로그인해야 합니다.