cubalys   8년 전

10^14 까지가 범위 이므로

10^7 까지의 소수들을 구한 후

그 수들의 N제곱이 범위에 포함되는 경우

cnt++을 해주는 방식으로 작성했습니다

수가 long long 범위를 벗어날 수 있기 때문에

10^15승을 넘어가게 되면 수를 곱하지 않고 break 하도록 했습니다

어디서 틀렸는지 모르겟습니다.

yukariko   8년 전

1000000000000000 이 int를 넘어서기 때문에 오버플로우가 됩니다.

1000000000000000LL로 고쳐보세요

cubalys   8년 전

감사합니다.

음 그런데 그래도 틀리네요 ㅜㅜ


yukariko   8년 전

while문에 들어가기 위한 조건이 잘못되었습니다.

예를들면 범위가 [10,30] 일 때

2의 n제곱인 16도 거의소수여야 하지만

이 소스에선 2*2 인 4가 A인 10보다 작기때문에 while에 들어가지 않습니다.

cubalys   8년 전

감사합니다 ㅜㅜ 덕분에 맞았어요;; 저생각을 못했네요

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