CF#589(本部2)C.素数と乗算素因数高速電力+

それは右の統計的方法を変更しなければならなかった、包含と除外の実践を考えるようになったが、WAてきました。 

<ビット/ STDC ++ H>の#include 
の#define MOD十億七
の#define LL符号なし長い長
の#define setIO(S)freopenは(S ".IN"、 "R"、STDIN)
使用して名前空間std。    
ベクトル<LL> V。    
qpow LL(LLベース、LLのK)
{ 
    LL TMP = 1LL。
    (K >> = 1、基地=ベース*基地%MOD; K)(K&1)TMP = TMP *基地%のMODならため、
    TMPを返します。    
} 
int型のmain()
{ 
    int型I、J。
    LL X、N、P。   
    // setIO( "入力"); 
    scanf関数( "%のLLDの%のLLD"、&X、&N)。   
    P = xで。   
    以下のための(I = 2; iは、* I <= P; ++ I)
    { 
        IF(P%のI == 0)
        { 
            v.push_back(I)。   
        }
    もし(P> 1)v.push_back(P)。    
    LL ANS = 1LL。
    用(i = 0; iはv.sizeを()<; ++ i)が
    { 
        LL M = N。   
        今= 0っ。
        一方、(M> = V [i])と
        { 
            今+ = M / V [i]は、
            M / V = [I]; 
        }    
        ANS = ANS * qpow(V [i]は、今)%MOD。  
    } 
    のprintf( "%LLDする\ n"、(長い長い)ANS)。     
    0を返します。
}

  

おすすめ

転載: www.cnblogs.com/guangheli/p/11610963.html