hdu 5391 Zball in Tina Town(打表找规律)

问题描述
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

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

 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

 

转载于:https://www.cnblogs.com/UniqueColor/p/4733457.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值