closet0426   5년 전

최대 범위가 1012  근처이고 제곱ㄴㄴ수 확인을 위해 나누어볼 수는 106이하면 된다고 판단해서 배열을 할당했습니다.

이후에 범위 내의 소수를 모두 구한 뒤, a[i]의 값이 제곱ㄴㄴ수인지 확인하고 에라토스테네스의 체를 이용해 a[i]가 제곱 ㄴㄴ수인 경우에는 false로 남기고, 제곱ㄴㄴ수가 아닌 경우에는 true를 주었습니다.

마지막으로 false의 개수를 세서 반환했구요

근데 1000000 이상의 숫자만 입력되면 런타임 에러가 발생합니다... 그 이하의 숫자는 모두 잘 처리하는데요...

이유를 모르겠습니다. ㅜㅠ 

rei   5년 전

for (long long i = 0; i < max - min + 1; i++) {
a[i] = tmp++;
}

max -min 도 1,000,000 까지 입니다.

a 배열도 1,000,001 개 주셔야 할것 같습니다.

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