gkfkagkfka12   6년 전

질문들을 보면서 다음 방법들을 썼습니다.

  1.  에라토스테네스의 체를 이용해서 min~max 사이의 소수들을 구한 뒤 prime 벡터에 집어넣는다.
  2. prime벡터에서 각 원소들을 제곱한다. 제곱수이기 때문에.
  3. 그렇게 소수의 제곱수를 뽑아내서 min~max 사이의 제곱수로 나눠지지 않는 수를 찾아서 출력한다.

어느 부분에서 시간초과가 나는 건가요..? 힌트 좀 주실 수 있나요?

atomzeno   6년 전

에라토스테네스의 체를 이용해서 min~max 사이의 소수들을 구한 뒤 prime 벡터에 집어넣는다.

min,max< 1000000000000....에라토스테네스 체로 모든 소수를 구하기엔 무리가?

그것보다는 min~max 사이에 p 의 배수들에 check를 해주면서 가는게 좋겠죠. 그러면 sqrt( 1000000000000 )이하의 소수만 구하면 되니까용.k2

min<=  p2 k1, p2 k2<=max 만족하는 k1~k2까지 for로 i를 돌려주면서 말이죠.

gkfkagkfka12   6년 전

p랑 k1, k2는 어디서 나온거죠??

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