質問の意味:
アイデア:
(x)の素因数分解であるfはまず、(TI / 2)^ xをΠpi後、取得したプレイテーブルを観察します
再分析可能、のΣf(I)= N /(1 * 1)* 1 * 1のみのみの+ N /(2 * 2)* 2 * 2 +数の数の...
しかし、結果のタイムアウト。
分析を実行すること数xがPHI(X)でのみ利用可能です。
#include <ビット/ STDC ++ H> の#define(iは= int型、iが= Bを<; I ++の)のための担当者(I、B) の#define DEP(I、B)(iはBを= int型のため、 I> =; i--) 使用して 名前空間はstdを、 #defineっ長い長 のconst int型 N = 3E5 + 5 。 LL RD() { LL、X = 0、F = 1。チャー CH = GETCHAR()。 一方、(CH < ' 0 ' || CH> ' 9 '){ 場合(CH == ' - ')、F = - 1 ; CH = GETCHAR();} 一方、(CH> = ' 0 ' && CH <= ' 9 ' {X = X *)10 + CH- ' 0 ' ; CH = GETCHAR();} 戻りのx *のF。 } int型のT。 LLのn; LL F [ 10000010 ]、ANS、合計。 INT メイン() { T = RD()。 一方、(T-- ) { ANS = 0 ;和= 0 。 N = RD()。 INT P = SQRT(N)。 DEP(I、2 、P) { int型のx = I + iは、 F [I] = N /(1LL * i *がi)を、 一方、 (x <= p)は { F [I] - = F [X]。 X + = I。 } ANS = ANS + 1LL * F [I] * I。 和 + = F [i]は、 } のprintf(" %LLDする\ n "、ANS + N- 合計)。 } }
#include <ビット/ STDC ++ H> の#define(iは= int型、iが= Bを<; I ++の)のための担当者(I、B) の#define DEP(I、B)(iはBを= int型のため、 I> =; i--) 使用して 名前空間はstdを、 #defineっ長い長 のconst int型 N = 1E7 + 5 。 LL RD() { LL、X = 0、F = 1。チャー CH = GETCHAR()。 一方、(CH < ' 0 ' || CH> ' 9 '){ 場合(CH == ' - ')、F = - 1 ; CH = GETCHAR();} 一方、(CH> = ' 0 ' && CH <= ' 9 ' {X = X *)10 + CH- ' 0 ' ; CH = GETCHAR();} 戻りのx *のF。 } INTプライム[N + 10 ]、PHI [N + 10 ]、NUM [N + 10 ]、フラグ[N + 10 ]、L = 0 。 ボイドisprime() { PHIは、[ 1 ] = 1 。 以下のために(int型、I = 2 ; iが<= N; iが++ ) { 場合(!フラグ[I]) { プライム[ ++ 1] = I。 PHI [i]は = I- 1 。 } のための(INT J = 1 ; J <= 1; J ++ ) { 場合(1LL *プライム[J] * I> N)が壊れます。 PHI [iが素数* [J] = PHI [i]は*(I%プライム[j]は素数[J] - ?1 :プライム[J])。 フラグ[プライム[J] * I] = 1 。 もし(I%、プライム[J] == 0)ブレーク。 } } } int型Tと、 LLのn; LL F [ 10000010 ]、ANS、合計。 INT メイン() { isprime()。 T = RD()。 一方、(T-- ) { ANS = 0 ;和= 0 。 N = RD()。 INT P = SQRT(N)。 DEP(I、1 、P) { int型のx = I + I。 F [I] = N /(1LL * i *がi)を、 ANS = ANS + 1LL * [I] * F [i]がPHI。 } のprintf(" %LLDする\ n "、年); } }