D - 整数を探します

 

D - 整数を探します

の$ A ^ {N} + B ^ {N} = C ^ {N} $

考えると、n個の$ B、C $を解きます

 せいぜい3倍整数解

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
typedefの長い 長いLL。
LL [ 500005 ]。
LLのN、; 
INT のmain()
{ 
    int型のT。
    scanf関数(" %のD "、&T)。
    一方、(T-- 
    { 
        scanf関数(" %のLLDの%のLLD "、&​​N、&A )。

        もし(N> = 3 
        { 
            プット(" -1 -1 " )。
        } 
        そう であれば(N ==1 
        { 
            COUT << 1 << '  ' << + 1 << ' の\ n ' ; 
        } 
        そう であれば(N == 0 
        { 
            COUT << - 1 << '  ' << - 1 << ' の\ n ' ; 
        } 
        
        { 
            LLのB、C、X、Y。
             LL I =(1 ; iが<。
                
                { 
                    X =(* A)/ I。
                    Y = I。
                   // COUT <<(X + Y)<<」「<< << ENDL。
                    もし((X + Y)%2 == 0 &&(X + Y)=(!2 * A))破ります
                } 
            } 
            C =(X + Y)/ 2 
            B = SQRT(C *とのCA * A)。
            coutの << B << '  ' << C << ' \ nを' ; 
        } 
    } 
}

 

おすすめ

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