【题目描述】
这是一道计算题,你需要计算下面三个算式的值:
(1)给定P,y,z,求yzmodP。
(2)给定P,y,z,求满足yx≡z(modP)的最小非负整数解。
(3)给定P,y,z,求CzymodP,其中Czy为z中取y的组合数。
【输入】
第一行一个整数N表示数据组数。
接下来N行每行四个整数type,y,z,P。type表示询问类型,保证type∈{1,2,3}。
【输出】
对于每组数据输出一行表示答案。对于问题类型(2)若x不存在则输出“Math Error”(不含引号)。
【输入样例】
文本
6
2 2 3 4
3 2 7 9
2 1 2 9
3 1 6 7
1 5 3 7
1 9 2 8
【输出样例】
文本
Math Error
3
Math Error
6
6
1
【提示】
【数据规模与约定】
| 测试点 |
问题类型1约定 |
问题类型2约定 |
问题类型3约定 |
| 1∼4 |
问题个数不超过500,y,z,P≤109 |
问题个数为0 |
问题个数为0 |
| 5∼10 |
问题个数不超过50,y,z,P≤103 |
问题个数不超过10,y,z≤103,P≤109 |
|
| 11∼16 |
问题个数不超过30,y,z,P≤109,P为质数 |
问题个数不超过30,y,z≤107,P≤109,P为质数 |
|
| 17∼20 |
问题个数不超过50,y,z,P≤109 |
问题个数不超过50,y,z≤106,P≤109 |
|
对于100%的数据,若P不为质数,且P=∏i=1kPiai ,其中pi是互不相同的质数,保证 Piai≤105 。