Zball in Tina Town
Accepts: 397
Submissions: 2463
Time Limit: 3000/1500 MS (Java/Others)
Memory Limit: 262144/262144 K (Java/Others)
问题描述
Tina Town 是一个善良友好的地方,这里的每一个人都互相关心。 Tina有一个球,它的名字叫zball。zball很神奇,它会每天变大。在第一天的时候,它会变大111倍。在第二天的时候,它会变大222倍。在第nnn天的时候,它会变大nnn倍。 zball原来的体积是111。Tina想知道,zball在第n−1n-1n−1天时的体积对nnn取模是多大呢? Tina是一个蠢蠢的女孩子,当然不会算啦,所以她请你帮她算出这个答案呢。
输入描述
第一行一个正整数TTT,表示数据组数 接下来TTT行,每行一个正整数nnn,意义如题面所述 T≤105,2≤n≤109T \leq 10^5,2 \leq n \leq 10^9T≤105,2≤n≤109
输出描述
对于每组数据,输出一个正整数,表示答案。
输入样例
2 3 10
输出样例
20
<pre name="code" class="cpp">#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #define LL int using namespace std; bool su(LL n) { for(int i=2; i*i<=n; i++) { if(n%i==0) return false; } return true; } int main() { LL n,m,i; LL cla; scanf("%d",&cla); while(cla--) { scanf("%d",&n); if(n==2)//前两个进行情况的特判 { printf("1\n"); } else if(n==3||n==4) { printf("2\n"); } else if(su(n))//一个数如果为质数(素数)则(n-1)!%n=n-1 { printf("%d\n",n-1); } else { //printf("**"); printf("0\n");//若为合数(除1外能被其他数整除)则(n-1)!%n=0 } } return 0; }