UVA - 374

https://vjudge.net/problem/19685/origin

小電力のフェルマーの定理急速な最適化

フェルマーの小定理の最適化のほか、注意深い222この場合は、002、つまり、0番目の0が存在しますので、実際の答えはゼロであります

#include <iostreamの> 
する#include <cstdioを> 
する#include <キュー> 
の#include <アルゴリズム> 
の#include <cmath> 
の#include <CStringの>
 に#define INF 2147483647
 の#define N 47000
 の#define P(A)のputchar(A)
 の#define以下のための(I、a、b)は(++ I;私は= Bを<長い長iは=)のために使用した名前空間STDを、
長い長いT;
長い長い、X、Y、M、CNT。
長い長いプライム[N];
BOOL VIS [N]。
ボイド長いロングX){
    

      長い 長い Y = 1チャー C = GETCHAR(); X = 0 一方、(C < ' 0 ' || C> ' 9 '){ もし、(C == ' - ')Y = - 1 ; C = GETCHAR();}
     一方、(C <= ' 9 ' && C> = ' 0 '){X =(X << 1)+(X << 3)+ C- ' 0 ' ; C = GETCHAR();} 
    X * = Y。
長い 長いX){
     場合(X < 0){P(' - '); X = - X;}
     もし(X> 9)O(X / 10 )。
    P(Xの10 + ' 0 ' )。
} 

長い 長い KSM(長い 長い長い 長いB){
     長い 長い R = 1 一方、(B> 0 ){
         場合(B&1 
            R = R *% M。= A *%のM。
        B >> = 1 
    } 
    戻りR。
} 

ボイドオイラー(){ 
    VIS [ 1 ] = 1 
    (Iについて2 、N){
         場合(!VIS [I])プライム[++ CNT] = I。
        以下のための長い 長い J = 1 ; iが素数[j]を* && J <= CNT <= N; J ++ ){ 
            VIS [iが素数* [J] = 1 もし(I%、プライム[J] == 0 ブレーク
        } 
    }
}

INT メイン(){ 
    オイラー()。
    一方、(scanf関数(" %LLD%LLD%LLD "、およびX&Y、&M)=!EOF){        
        X%= M。
        もし(!VIS [M])
            のY%= M- 1 もし(X &&!Y)
            Y = 1 
        O(KSM(X、Y)); P(' の\ n ' ); 
    }      
    戻り 0 
}

 

おすすめ

転載: www.cnblogs.com/war1111/p/11286216.html