Kids Aren't Alright
시간 제한2초메모리 제한512 MB
1e18 이하의 m이 주어질 때, 최대공약수가 1이고 최소공배수가 m인 양의 정수 집합의 개수를 998244353으로 나눈 나머지를 구한다.
문제
믿기 어렵겠지만, 전화를 건 어떤 미친 사람이 당신의 소중한 아이를 납치했다고 주장한다. 당신은 그 말을 믿지 않는다. 당신의 아이들(아무도 없을 수도 있다)은 지금 눈앞에서 안전하게 놀고 있기 때문이다. 그래도 상황이 궁금해진 당신은 범인에게 인질을 풀어주는 대가로 무엇을 원하는지 묻는다.
지루하겠지만 납치범은 돈을 요구한다. 그냥 돈이다. 실망한 채 전화를 끊으려던 순간, 이상한 점 하나가 눈에 들어온다. 상대방은 원하는 금액을 정확히 말하지 않는다. 대신 수수께끼를 낸다.
우스꽝스럽겠지만 수수께끼는 이렇다.
"최대공약수가 1이고 최소공배수가 인 양의 정수들의 공집합이 아닌 집합은 몇 개인가?"
그리고 납치범은 이 수수께끼의 답을 으로 나눈 나머지가 상상 속 자식을 돌려받는 데 필요한 정확한 금액이라고 말한다.
당신은 한동안 이런 일에서 멀어져 있었기에 납치 시장의 시세가 궁금해진다. 물론 납치범에게 1원 한 푼 줄 생각은 없지만.
입력
입력은 한 줄이며, 정수 이 하나 주어진다. ()
출력
요구받은 금액을 정수 하나로 출력한다.
힌트
첫 번째 예제에서 조건을 만족하는 집합은 , , , , , , 이다.