1456번 - 거의 소수
10^14 까지가 범위 이므로
10^7 까지의 소수들을 구한 후
그 수들의 N제곱이 범위에 포함되는 경우
cnt++을 해주는 방식으로 작성했습니다
수가 long long 범위를 벗어날 수 있기 때문에
10^15승을 넘어가게 되면 수를 곱하지 않고 break 하도록 했습니다
어디서 틀렸는지 모르겟습니다.
1000000000000000 이 int를 넘어서기 때문에 오버플로우가 됩니다.
1000000000000000LL로 고쳐보세요
감사합니다.
음 그런데 그래도 틀리네요 ㅜㅜ
while문에 들어가기 위한 조건이 잘못되었습니다.
예를들면 범위가 [10,30] 일 때
2의 n제곱인 16도 거의소수여야 하지만
이 소스에선 2*2 인 4가 A인 10보다 작기때문에 while에 들어가지 않습니다.
감사합니다 ㅜㅜ 덕분에 맞았어요;; 저생각을 못했네요
댓글을 작성하려면 로그인해야 합니다.
cubalys 8년 전
10^14 까지가 범위 이므로
10^7 까지의 소수들을 구한 후
그 수들의 N제곱이 범위에 포함되는 경우
cnt++을 해주는 방식으로 작성했습니다
수가 long long 범위를 벗어날 수 있기 때문에
10^15승을 넘어가게 되면 수를 곱하지 않고 break 하도록 했습니다
어디서 틀렸는지 모르겟습니다.