魔法の機能

魔法の機能

私はなぜオイラー関数で、最初の屯を理解していませんでした

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
typedefの長い 長いLL。
CONSTのLL MAXN = 4E6 + 5 constの LL MAX = 1E9; 
LL P [MAXN]。
【MAXN] PHI LL。
【MAXN] LL。
BOOL F [MAXN]。
LL K = 0 無効INITを()
{ 
    PHI [ 1 ] = 1 以下のためにint型 I = 2 ; I <MAXN iは++ 
    { 
        場合(!F [i])と
        { 
            P [Kは++] = I; 
            PHI [i]は = I- 1 
        } 
        のためのint型 J = 0 ; J <K && iは* P [J] <MAXN; J ++ 

        { 
             PHI [iは?* P [J] = PHI [i]は*(私の%のP [j]をP [J] - 1 :P [J])。
            F [iが * P [j] = 1 もし(I%P [j] == 0 
            { 
                破ります
            } 
        } 
    } 
    
} 

int型のmain()
{ 
    int型のT。
    その中に(); 
    scanf関数(" %d個"、&T)。
    LLのx; 
    ANS LL; 
    一方、(T-- 
    { 
        scanf関数(" %のLLD "、&x)は、
        ANS = 0 ; 
        LLさt = SQRT(X)+ 1 、D。
        一方、(T)
        { 

            ANS + = X /(T * tの)* PHI [T]。
            トン - ; 
        } 
        COUT << ANS << ' の\ n ' ; 

    } 
}

 

おすすめ

転載: www.cnblogs.com/liulex/p/11329949.html