经典密码体制(上)
第3关仿射密码
#include<bitsdc++.h>
using namespace std;
char A[103];
constexpr int mod=26;
//在下面Begin和End之间补全代码,对输入的字符串进行仿射密码解密
/*********** Begin ***********/
size_t quick(size_t x,size_t y)
{
size_t ans=x;
while(y)
{
if(y&1)
ans=ans*x%mod;
x=x*x%mod;
y>>=1;
}
return ans;
}
int main()
{
int a,b;
cin>>a>>b;
cin>>A;
int x=quick(a,15);
for(int i=0; i<strlen(A); i++)
printf("%c",'a'+(x*((A[i]-'a'-b+mod)%mod)%mod));
return 0;
}
/*********** End ***********/