问题描述
Tina Town 是一个善良友好的地方,这里的每一个人都互相关心。
Tina有一个球,它的名字叫zball。zball很神奇,它会每天变大。在第一天的时候,它会变大11倍。在第二天的时候,它会变大22倍。在第nn天的时候,它会变大nn倍。
zball原来的体积是11。Tina想知道,zball在第n-1n1天时的体积对nn取模是多大呢?
Tina是一个蠢蠢的女孩子,当然不会算啦,所以她请你帮她算出这个答案呢。
输入描述
第一行一个正整数TT,表示数据组数
接下来TT行,每行一个正整数nn,意义如题面所述
T \leq 10^5,2 \leq n \leq 10^9T105​​,2n109​​
输出描述
对于每组数据,输出一个正整数,表示答案。
输入样例
2
3
10
输出样例
2
0

这题就是求 (n-1)!modn(n1)!  mod  n

如果nn为合数,显然答案为0.

如果nn为素数,那么由威尔逊定理可得答案为 n-1n1

注意有个trick为 nn = 4

打个表找找规律就好了。。。

hdu  5391 Zball in Tina Town(打表找规律)_i++hdu  5391 Zball in Tina Town(打表找规律)_#include_02
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<vector>
 5 #include<set>
 6 #include<map>
 7 #include<cmath>
 8 #include<stdlib.h>
 9 using namespace std;
10 int n;
11 
12 
13 int main()
14 {
15     int t;
16     scanf("%d",&t);
17     while(t--)
18     {
19         scanf("%d",&n);
20         
21         if(n==4)
22         {
23             printf("2\n");
24             continue;
25         }
26         int flag=0;
27         for(int i=2;i*i<=n;i++)
28         {
29             if(n%i==0)
30             {
31                 flag=1;
32                 break;
33             }
34         }
35         if(flag==0)
36           printf("%d\n",n-1);
37           else 
38             printf("0\n");
39     }
40     
41     return 0;
42 }
View Code