问题 4618 --1.Encrypt

4618: 1.Encrypt

题目描述

      Rivest是密码学专家。近日他正在研究一种数列E={E[1],E[2],……,E[n]},且E[1]=E[2]=p(p为一个质数),E[i]=E[i-2]*E[i-1] (若2<i<=n)。
例如{2,2,4,8,32,256,8192,……}就是p=2的数列。在此基础上他又设计了一种加密算法,该算法可以通过一个密钥q (q<p)将一个正整数n加密成另外一个正整数d,计算公式为:d=E[n] mod q。现在Rivest想对一组数据进行加密,但他对程序设计不太感兴趣,请你帮助他设计一个数据加密程序。

输入

    从文件a.in第一行读入m,p。其中m表示数据个数,p用来生成数列E。
    以下有m行,每行有2个整数n,q。n为待加密数据,q为密钥。
    规模:0<p,n<2^31;0<q<p;0<m<=5000。

输出

    将加密后的数据按顺序输出到文件a.out。
    第i行输出第i个加密后的数据。

样例输入输出

输入#1 复制
2 7
4 5
4 6
输出#1 复制
3
1
输入#2 复制
4 7
2 4
7 1
6 5
9 3
输出#2 复制
3
0
1
1

提示

序号 标题 作者 发表时间 费用 订购数 操作