각 i에 대해 함수 Fi(x)=i/x를 생각하자. Aij=Fi(gcd(i,j))이다.
고정된 i에 대해, d∣i인 d에 대해
hi(d)=e∣d∑μ(ed)ei
로 정의한다. 뫼비우스 반전에 의해
gcd(i,j)i=d∣id∣j∑hi(d)
가 성립한다.
따라서 Edj=[d∣j], Hid=hi(d) if d∣i, otherwise 0로 두면 A=HE이다. 자연스러운 번호 순서에서 E는 대각 원소가 모두 1인 삼각행렬이고, H도 삼각행렬이다. 그러므로
det(A)=i=1∏Nhi(i)
이다.
이제
hi(i)=e∣i∑μ(ei)ei=r∣i∑μ(r)r=p∣i∏(1−p)
이다. 따라서 최종 답은
i=1∏Np∣i∏(1−p)
이고, 같은 소수 p가 기여하는 횟수는 p의 배수의 개수인 ⌊N/p⌋번이다. 즉,
det(A)=p≤N∏(1−p)⌊N/p⌋
이다.
에라토스테네스의 체 또는 선형 체로 N 이하의 모든 소수를 찾고, 빠른 거듭제곱으로 위 식을 계산하면 된다. 시간복잡도는 O(N+π(N)logP)이고, 메모리 사용량은 O(N)이다.
Solution written by GPT5.5