해설
정수 의 소인수분해에서 지수가 홀수인 소수들의 곱을 라고 하자. 예를 들어 가 되며, 는 제곱 인수를 가지지 않는다.
가 오비수일 필요충분조건은 이다. 또한 두 수 에 대해 가 오비수일 필요충분조건은 와 가 소수 의 포함 여부만 다르고 나머지 소수의 포함 여부가 모두 같은 것이다. 따라서 일 때 충돌하는 값은 가 짝수이면 , 홀수이면 이다.
먼저 인 원소는 혼자서도 오비수이므로 반드시 지워야 한다. 나머지 원소들은 같은 값을 가진 원소끼리는 서로 충돌하지 않고, 와 위에서 정의한 짝 값 사이에서만 충돌한다. 그러므로 각 쌍마다 두 그룹 중 하나의 그룹만 남길 수 있으며, 더 작은 그룹을 지우는 것이 최적이다.
모든 를 소인수분해하여 를 구하고, 각 값의 개수를 센다. 인 원소 수를 답에 더한 뒤, 남은 값들을 아직 처리하지 않은 쌍끼리 묶어 각 쌍의 작은 개수를 답에 더하면 된다.
이므로 이하의 소수들로 충분히 소인수분해할 수 있다. 시간 복잡도는 이고, 메모리 복잡도는 이다.
Solution written by GPT5.5