Tina Town is a friendly place. People there care about each other.
Tina has a ball called zball. Zball is magic. It grows larger every day. On the first day, it becomes 1 time as large as its original size. On the second day,it will become 2 times as large as the size on the first day. On the n-th day,it will become nn times as large as the size on the (n-1)-th day. Tina want to know its size on the (n-1)-th day modulo n.
Input
The first line of input contains an integer T, representing the number of cases.
The following TT lines, each line contains an integer nn, according to the description.
T≤105,2≤n≤109
Output
For each test case, output an integer representing the answer.
Sample Input
2
3
10
Sample Output
2
0
除了4,需要特判一下:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<vector>
#define INF 0x7fffffff
#define N 100200
using namespace std;
bool prime[N];
vector<int> p;
void getPrime()
{
for(int i=2;i<N;i++)
if(!prime[i])
{
p.push_back(i);
for(int j=i;j<N;j+=i)
prime[j]=true;
}
}
bool check(int x)
{
for(int i=0;p[i]*p[i]<=x;i++)
if(x%p[i]==0)
return false;
return true;
}
int main()
{
getPrime();
int t;
scanf("%d",&t);
int n;
while(t--)
{
scanf("%d",&n);
if(n==4)
{
printf("2\n");
continue;
}
if(check(n))
printf("%d\n",n-1);
else
printf("0\n");
}
return 0;
}

本文介绍了一个名为TinaTown的地方,这里的人们彼此关怀。Tina拥有一种名为ZBall的魔法球,该球每天都会增大。文章提供了一段代码,用于计算ZBall在第(n-1)天的大小模n的值,并通过一些特殊情况来解决这个问题。
7219

被折叠的 条评论
为什么被折叠?



