#include<iostream>
#include<cmath>
using namespace std;
void main()
{
int p,q;
cout<<"输入p、q (p、q为质数,不支持过大)"<<endl;
cin>>p>>q;
int m=p*q;
int n=(p-1)*(q-1);
int e;
cout<<"输入e (e与"<<n<<"互质) 且 1<e<"<<n<<endl;
cin>>e;
int d;
for(d=1;;d++)
{
if(d*e%n==1)
break;
}
cout<<endl<<endl;
cout<<"{ "<<e<<","<<m<<" }"<<"为公钥"<<endl;
cout<<"{ "<<d<<","<<m<<" }"<<"为私钥"<<endl;
cout<<endl<<endl;
int before;
cout<<"输入明文"<<endl;
cin>>before;
int after;
int i;
after=before%n;
for(i=1;i<e;i++)
after=(after*before)%m;
cout<<"密文为"<<endl;
cout<<after<<endl;
}