nyist 769 乘数密码(扩展欧几里得求逆元)
来源:互联网 发布:淘宝网灯饰 编辑:程序博客网 时间:2024/06/01 08:57
乘数密码也是一种替换密码,其加密变换是将明文字母串逐位乘以密钥k并进行模运算,数学表达式如下:
E(m)=k*m mod q, gcd(k,q)=1 (即k,q互素)。
当k与q互素时,明文字母加密成密文字母的关系为一一映射。
现有一经过乘法加密的密文,请破译出它的明文。
- 输入
- 输入包含多组数据,不超过1000组。
每组包含一个字符串和一个正整数k,字符串全部由大写字母组成,长度不超过50,k是与q互素的数,q=26,k<26。 - 输出
- 每组输出数据单独占一行,输出对应的明文。
- 样例输入
ILOVEYOU 3
- 样例输出
UVWHKIWY
#include <iostream>#include<algorithm>#include<cstdio>#include<string.h>using namespace std;int x,y,q;void ex_Eulid(int a,int b){ if(b==0) { x=1; y=0; q=a; } else { ex_Eulid(b,a%b); double temp=x; x=y; y=temp-a/b*y; }}int main(){ int a,b; char str[51]; while(~scanf("%s",str)) { scanf("%d",&a); b=26; int len=strlen(str); ex_Eulid(a,b); for(int i=0;i<len;i++) { str[i]=(str[i]-65)*(x+26)%26+65; printf("%c",str[i]); } printf("\n"); } return 0;}
0 0
- nyist 769 乘数密码(扩展欧几里得求逆元)
- 乘数密码 扩展欧几里得求逆元
- nyoj-769-乘数密码
- 769 乘数密码
- nyoj-769-乘数密码
- 769 乘数密码【字符串】
- 乘数密码
- NYOJ 769 乘数密码【暴力求解】
- NYOJ 769 乘数密码 (字符串)
- NYOJ-769乘数密码,逆元解法;
- 欧几里得扩展求逆元
- 扩展欧几里得求逆元
- 扩展欧几里得求逆元
- 扩展欧几里得求逆元
- 扩展欧几里得(求逆元)
- 扩展欧几里得求逆元:
- nyoj769乘数密码
- hdu1576 扩展欧几里得算法求逆元
- 常见工具封装
- HDU 5040 Instrusive(2014 ACM/ICPC Asia Regional Beijing Online )
- emacs快速启动--emacsclient
- 定位样式position的四种定位
- 烦死了。。。看慕课网上的一个视频关于一个选择数据库的问题,,,,该如何解决呢?
- nyist 769 乘数密码(扩展欧几里得求逆元)
- memcache
- HDU 1502 Regular Words(打表预处理dp)
- 3325顺序表应用2:多余元素删除之建表算法
- 八个Docker的真实应用场景
- linux命令行模式满屏如何翻页?
- 大数据可视化技术现状分析及技术实践
- linux下使用yum安装mysql详解
- 删除链表中的元素