같은 수에 대한 소수 판정이 여러 번 이루어지고 있기 때문입니다.
input으로 100000과 100001이 들어온다면
100001~200000 사이에 있는 자연수들이 모두 소수판정을 2번씩 받게 될테고, 각각은 O(n^(1/2))의 시간이 드므로 약 300~400번의 연산을 요합니다.
그러면 테스트케이스마다 3*10^7 번 이상의 연산을 새로 하고 있으니 시간 초과가 나겠죠?
문제의 핵심은 123456*2 까지 수를 먼저 소수 판정을 해놓고 테케마다 count만 하는 것입니다.
wggwvs 1년 전
이 문제는 sqrt를 이용해도 풀리지 않는 문제인가요? 답은 얼추 맞는거 같은데, 계속 시간초과가 나옵니다. 그전까지 소수문제들은 sqrt를 이용해서 잘 풀었는데 이 문제는 sqrt를 이용해도 풀리지 않나요? 알려주세요..