wrllrw   5년 전

첨부한 소스 코드에서
어떤 부분이 런타임 에러 뜨는지 도저히 모르겠습니다 ㅠㅠ

djm03178   5년 전

입력이 50000 정도가 되면, 25번째 줄에서 i * i가 int의 범위를 넘어서게 됩니다.

wrllrw   5년 전

와... 천재십니다...

wrllrw   5년 전

보통 이런 문제 푸실때 long long으로 선언해두시고 푸시나요??

djm03178   5년 전

그렇게 해도 되고, 회피하는 방법이 몇 가지 있습니다. 하나는 좀 비효율적이지만 i*i 대신에 i*2부터 시작하는 것이고, 다른 하나는 i 자체를 i*i <= n인 동안에만 돌리는 것입니다. (단 이 경우에는 남은 것들은 별개로 push 해줘야 합니다.

wrllrw   5년 전

n이 10이고

i*i <= n 까지면
5, 7 같은 것을 별개로 push 해줘야 한다는 것이지요?? 
그렇게 하면 확실히 int만 써도 되겠네요. 감사합니다.

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