建议先百度RSA ,题干稍微有点没看明白
按要求做就行。注意加密和解密时及时求余
另外不知道为什么用vector出错,去了后就对了。
#include <stdio.h>
#include <vector>
#include <math.h>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int p,q,e,l;
int n,f,d=1;
int arr;
freopen("C:\\Users\\Lenovo\\Desktop\\input.txt","r",stdin);
while(scanf("%d%d%d%d",&p,&q,&e,&l)!=EOF)
{
n=p*q;
f=(p-1)*(q-1);
int t=1%f;
for (d = 1; ; d++)
{
if((d*e)%f==t)break;
}
for(int i=0;i<l;i++)
{
scanf("%d",&arr);
int x=1;
for(int j=1;j<=d;j++)
{
x=(arr*x)%n;
}
x%=n;
printf("%c",x);
}
printf("\n");
}
return 0;
}