11689번 - GCD(n, k) = 1
은 없죠..?
에라토스테네스 체를 구현하려고하는데
입력범위가 10^12라서 bool로 할당을 하려는데 안되네여..
방법 자체가 잘못됬나요
네, 그렇게 풀면 안 되는 문제입니다.
설령 할당이 가능하다고 하더라도, 에라토스테네스의 체를 10^12개에 대해 시간 안에 돌릴 수는 없습니다.
에라토스테네, 큐 안쓰고 그냥 소인수분해하는 식으로했는데
시간 초과가 나서요
더 시간을 줄일 방법이 없나요?
살짝 정정하자면 없는건 아니겠죠 있으니까 시간초과가 나겠지만..
오일러 토션트 계산하는 문제 아닌가요? 소인수 분해하면 풀 수 있는데 제곱근까지만 루프를 돌면 됩니다.
오일러 토션트라는 걸 처음 알게 됐네요. 찾아보니 포함 배제로 증명이 되는데 그보다 훨씬 간단한 식으로 풀 수 있군요.
제가 풀려고했던 방식이 오일러 토션튼데..
큰 소수일경우에 반복횟수가 O(N)이라 이 처리가 안되네용 ㅠ
sait님이 말씀하셨던 것처럼 루프는 제곱근까지만 돌면 됩니다. sqrt(N)보다 큰 수로는 나누어볼 필요가 없기 때문입니다.
댓글을 작성하려면 로그인해야 합니다.
lys312510 4년 전
은 없죠..?
에라토스테네스 체를 구현하려고하는데
입력범위가 10^12라서 bool로 할당을 하려는데 안되네여..
방법 자체가 잘못됬나요