题目描述
一天剑姬和剑豪在大龙处吵了起来,剑姬说自己的素数大,剑豪说
自己的素数大(无聊)。剑圣路过,顺口说了一句,一个数的素数次方才大。
剑姬,剑豪恍然大悟。(有联系吗?服了!)。
输入
输入p,q,k,m。p,q不同的素数,n=p*q,0<.n<2^63,0<=m,k<=2^63为任意值。
输出
k^(m*f(n)+1) mod n,f(n)为n的欧拉值;
样例输入
2 3 3 2
样例输出
3
题意:
解题思路:
欧拉值:一个数n,他的欧拉值是小于等于他的数中与他互质的数的个数。
如:f[8]=4(1、3、5、7)(不过没卵用)
欧拉公式:
同余模定理:
如图。。。
AC代码:
#include<stdio.h>
int main()
{
long long p,q,k,m,n;
while(~scanf("%lld%lld%lld%lld",&p,&q,&k,&m))
{
n=p*q;
printf("%lld\n",k%n);
}
return 0;
}