Description
Consider a positive integer X,and let S be the sum of all positive integer divisors of 2004^X. Your job is to determine S modulo 29 (the rest of the division of S by 29).
Take X = 1 for an example. The positive integer divisors of 2004^1 are 1, 2, 3, 4, 6, 12, 167, 334, 501, 668, 1002 and 2004. Therefore S = 4704 and S modulo 29 is equal to 6.
Take X = 1 for an example. The positive integer divisors of 2004^1 are 1, 2, 3, 4, 6, 12, 167, 334, 501, 668, 1002 and 2004. Therefore S = 4704 and S modulo 29 is equal to 6.
Input
The input consists of several test cases. Each test case contains a line with the integer X (1 <= X <= 10000000).
A test case of X = 0 indicates the end of input, and should not be processed.
A test case of X = 0 indicates the end of input, and should not be processed.
Output
For each test case, in a separate line, please output the result of S modulo 29.
Sample Input
1 10000 0
Sample Output
6 10
打表,谁有好方法自由提供!!
#include <iostream>
#include<memory.h>
using namespace std;
int main()
{
int n;
while(cin>>n&&n!=0)
{
switch(n%28)
{
case 1:cout<<6<<endl;break;
case 2:cout<<16<<endl;break;
case 3:cout<<8<<endl;break;
case 4:cout<<10<<endl;break;
case 5:cout<<25<<endl;break;
case 6:cout<<7<<endl;break;
case 7:cout<<14<<endl;break;
case 8:cout<<3<<endl;break;
case 9:cout<<23<<endl;break;
case 10:cout<<17<<endl;break;
case 11:cout<<3<<endl;break;
case 12:cout<<17<<endl;break;
case 13:cout<<0<<endl;break;
case 14:cout<<27<<endl;break;
case 15:cout<<7<<endl;break;
case 16:cout<<14<<endl;break;
case 17:cout<<15<<endl;break;
case 18:cout<<17<<endl;break;
case 19:cout<<26<<endl;break;
case 20:cout<<26<<endl;break;
case 21:cout<<20<<endl;break;
case 22:cout<<17<<endl;break;
case 23:cout<<9<<endl;break;
case 24:cout<<22<<endl;break;
case 25:cout<<22<<endl;break;
case 26:cout<<23<<endl;break;
case 27:cout<<0<<endl;break;
case 0:cout<<1<<endl;break;
}
}
return 0;
}