1016번 - 제곱 ㄴㄴ 수
최대 범위가 1012 근처이고 제곱ㄴㄴ수 확인을 위해 나누어볼 수는 106이하면 된다고 판단해서 배열을 할당했습니다.
이후에 범위 내의 소수를 모두 구한 뒤, a[i]의 값이 제곱ㄴㄴ수인지 확인하고 에라토스테네스의 체를 이용해 a[i]가 제곱 ㄴㄴ수인 경우에는 false로 남기고, 제곱ㄴㄴ수가 아닌 경우에는 true를 주었습니다.
마지막으로 false의 개수를 세서 반환했구요
근데 1000000 이상의 숫자만 입력되면 런타임 에러가 발생합니다... 그 이하의 숫자는 모두 잘 처리하는데요...
이유를 모르겠습니다. ㅜㅠ
for (long long i = 0; i < max - min + 1; i++) { a[i] = tmp++; }
max -min 도 1,000,000 까지 입니다.
a 배열도 1,000,001 개 주셔야 할것 같습니다.
댓글을 작성하려면 로그인해야 합니다.
closet0426 5년 전
최대 범위가 1012 근처이고 제곱ㄴㄴ수 확인을 위해 나누어볼 수는 106이하면 된다고 판단해서 배열을 할당했습니다.
이후에 범위 내의 소수를 모두 구한 뒤, a[i]의 값이 제곱ㄴㄴ수인지 확인하고 에라토스테네스의 체를 이용해 a[i]가 제곱 ㄴㄴ수인 경우에는 false로 남기고, 제곱ㄴㄴ수가 아닌 경우에는 true를 주었습니다.
마지막으로 false의 개수를 세서 반환했구요
근데 1000000 이상의 숫자만 입력되면 런타임 에러가 발생합니다... 그 이하의 숫자는 모두 잘 처리하는데요...
이유를 모르겠습니다. ㅜㅠ