1929번 - 소수 구하기
시간초과라고 계속뜨는데 아마 for 문에서 너무 오래걸려서 그런거겠죠?? 어떻게 하면 더 효율적으로 코딩할수있을까요? ㅠㅠ
2부터 sqrt(N)까지의 수로 나누어떨어지지 않으면 그 수는 소수입니다.
for (i = M; i < N; i++) { for (j = 1; j < N; j++) { if (i % j == 0) { Plus++; } } if (Plus == 2) { printf("%d\n", i); }
이렇게 해줬는데 틀린건가요?? 흠...
틀렸다기보다, sqrt(n)번만 계산해 보아도 될 것을 n번 계산하니, 계산량이 많아 주어진 시간 제한을 초과하게 됩니다.
댓글을 작성하려면 로그인해야 합니다.
cheld536 5년 전 1
시간초과라고 계속뜨는데 아마 for 문에서 너무 오래걸려서 그런거겠죠?? 어떻게 하면 더 효율적으로 코딩할수있을까요? ㅠㅠ