链接:点击打开链接
题意:求2004的X次幂的所有因数的和对29取模的值是多少
代码:
#include <iostream>
using namespace std;
#define mod 29
long long quickmod(long long a,long long b){
long long sum=1;
while(b){
if(b%2)
sum=sum*a%mod;
b/=2;
a=a*a%mod;
}
return sum;
}
int main()
{
long long a,x,y,z;
while(cin>>a&&a){ //当gcd(a,b)=1时 s(a*b)=s(a)*s(b);
x=quickmod(2,2*a+1)-1; //s(p^n)=1+p+p^2+...+p^n= (p^(n+1)-1)/(p-1)
y=quickmod(3,a+1)-1; //s(2004^X)=s(2^2X)*s(3^X)*s(167^X)
z=quickmod(167,a+1)-1; //s(2^2X)=2^(2X+1)-1
z=z*9; //s(3^X)=(3^(X+1)-1)/2
cout<<x*y*z%mod<<endl; //s(167^X)=(167^(X+1)-1)/166
} //直接求332对29的逆元为9
}