1億年ぶりの更新。もう無限回記事になってそうだけど、備忘録として。
を求めたい。∑i=1ngcd(n,i)を求めたい。
さっそくやり方。となるようなの個数となるようなの個数はオイラー関数ここで、とするとただし、のときのみ例外となることに注意よって、の素因数分解によりが求まる。∑i=1ngcd(n,i)=∑d|nd×(gcd(n,i)=dとなるようなi(1≤i≤n)の個数)=∑d|nd×(gcd(n/d,i)=1となるようなi(1≤i≤n/d)の個数)=∑d|nd×φ(n/d)(φはオイラー関数)=∑d|nn/d×φ(d)(ここで、n=∏i=1kpiei,d=∏i=1kpifiとすると)=∑d|n(∏i=1kpiei−fi)×(∏i=1k(pifi+1−pifi)/pi)(ただし、fi=0のときのみ例外となることに注意)=∏i=1k((∑j=1ei(piei+1−piei)/pi)+1)=n∏i=1k((pi−1)(ei+1)+1)/pi)よって、nの素因数分解により∑i=1ngcd(n,i)が求まる。おかしいところあったら指摘してもらえると助かります。
バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。