p2674.cpp
来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· C++ 代码 · 共 45 行
CPP
45 行
#include <stdio.h>
#include <iostream>
using namespace std;
int MulMod ( long long , long long );
int M;
void solve ( long long , long long );
main ()
{
long long P , m;
while ( cin >> P >> m ) {
solve ( P , m );
cout << endl;
}
}
void solve ( long long P , long long m )
{
long long t , np;
for ( M = 1; m > 1; m -- ) M *= m;
P %= M;
for ( t = P;; P = np ) {
np = MulMod ( t , P );
if ( np == P ) break;
}
cout << np << endl;
}
int MulMod ( long long a , long long b )
{
long long t = a , Ret = 1;
if ( b == 0 ) return 0;
while ( b ) {
if ( b & 1 ) Ret = ( Ret * t ) % M;
t = ( t * t ) % M;
b >>= 1;
}
return Ret;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?