📄 1211 rsa.cpp
字号:
#include <cstdio>
using namespace std;
const int Max=100001;
long long p,q,e,l,fn,n,d;
int cr;
inline int translate()
{
long long i=d,t=cr % n,tt=1;
while(i>1)
{
if(i%2==1)
tt=(tt*t) % n , i--;
else
t=(t*t) % n , i/=2;
}
return tt*t % n;
}
int main()
{
int i,t;
while( scanf("%I64d %I64d %I64d %I64d",&p,&q,&e,&l)!=EOF )
{
fn=(p-1)*(q-1);
n=p*q;
t=e%fn;
for(i=1;i<fn;i++)
if( ( (long long)(i*t) % fn) ==1 )
{
d=i;
break;
}
for(i=0;i<l;i++)
{
scanf("%d",&cr);
printf("%c", translate() );
}
printf("\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -