1644번 - 소수의 연속합
첨부한 소스 코드에서어떤 부분이 런타임 에러 뜨는지 도저히 모르겠습니다 ㅠㅠ
입력이 50000 정도가 되면, 25번째 줄에서 i * i가 int의 범위를 넘어서게 됩니다.
와... 천재십니다...
보통 이런 문제 푸실때 long long으로 선언해두시고 푸시나요??
그렇게 해도 되고, 회피하는 방법이 몇 가지 있습니다. 하나는 좀 비효율적이지만 i*i 대신에 i*2부터 시작하는 것이고, 다른 하나는 i 자체를 i*i <= n인 동안에만 돌리는 것입니다. (단 이 경우에는 남은 것들은 별개로 push 해줘야 합니다.
n이 10이고
i*i <= n 까지면5, 7 같은 것을 별개로 push 해줘야 한다는 것이지요?? 그렇게 하면 확실히 int만 써도 되겠네요. 감사합니다.
댓글을 작성하려면 로그인해야 합니다.
wrllrw 5년 전
첨부한 소스 코드에서
어떤 부분이 런타임 에러 뜨는지 도저히 모르겠습니다 ㅠㅠ