SP9972 SKEY - The SKey

题目描述

这是第 10 届 ACM 埃及国家编程竞赛的赛题,首席裁判 Mostafa S. 正在准备题目集。在过去几年里,首席裁判通常会要求出题人用他的公钥加密数据,以保持题目的安全。然而,不幸的是,RSA 算法在两周前被攻破了。为此,Mostafa 决定临时设计一个新算法,以应对这一情况,直到有人找到一种新的强加密和解密方法。找到算法后,Mostafa 向裁判们介绍了这个新加密算法,并提供了一个生成算法所需密钥的公式。密钥通过以下公式生成: $$\text{SKEY} = \left(M \times \sum_{k=0}^{N} \frac{1}{A^k}\right) \bmod P$$ 其中 $A$、$N$ 和 $P$ 是整数,$P$ 是一个素数,并且与 $A$ 互质(即 $\gcd(A, P) = 1$)。此外,$M$ 是一个非常大的数,生成时确保它能被 $P$ 整除。举个例子:假设 $A = 3$,$N = 2$,$P = 7$ 和 $M = 18$,那么 skey 的计算结果是: $$(18 \times (1/1 + 1/3 + 1/9)) \bmod 7 = 26 \bmod 7 = 5$$ 因为 $M$ 很大,在裁判之间通过电子邮件交流时直接发送是不太现实的。不过,模运算有一个简便的性质:$(A \times B) \bmod X = ((A \bmod X) \times (B \bmod X)) \bmod X$。因此,我们可以用 $M \bmod P$ 来代替 $M$ 进行计算。 现在,给定 $A$、$N$、$P$ 和 $M \bmod P$,请帮助首席裁判用编程计算出 SKey。

输入格式

输入的第一行包含一个整数 $T$,表示测试用例的数量。接下来的每一行给出 4 个整数 $A$、$N$、$P$ 和 $M \bmod P$。

输出格式

对于每个测试用例,按格式输出一行,形如 **“Case K: SKey”**,其中 $K$ 是测试用例的编号,SKey 是根据题目描述计算的结果。请参考示例输入输出来理解格式。

说明/提示

- $1 \leq T \leq 100$ - $1 \leq A, N, P \leq 10^5$ - $1 \leq M \mod P < P$ ## 示例输入 ``` 1 3 2 7 4 ``` ## 示例输出 ``` Case 1: 5 ``` **本翻译由 AI 自动生成**