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
n
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.
The following T lines, each line contains an integer n , according to the description.
T≤105,2≤n≤109
2 3 10
2 0
这题感觉无从下手,题目求的是第n天的球的大小取余n的值,但是我们只要打个表就会发现,这个值跟n有关,若n是素数,那么答案就是n-1,否则就是0。
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<queue>
#include<map>
#include<vector>
#include<stack>
#define inf 0x3fffffff
using namespace std;
typedef long long LL;
const int N=1e9+1;
unsigned long long a[1000];
int main()
{
//打表找规律
// a[1]=1,a[2]=2;
// for(int i=3;i<=21;i++)
// {
// a[i]=i*a[i-1];
// printf("%llu %d %llu\n",a[i-1],i,a[i-1]%i);
// }
int t,n;
bool flag;
scanf("%d",&t);
while(t--)
{
flag=true;
scanf("%d",&n);
if(n==2) printf("1\n");
else if(n==3||n==4) printf("2\n");
else
{
for(int i=2;i*i<=n;i++)
if(n%i==0)
{
printf("0\n");
flag=false;
break;
}
if(flag) printf("%d\n",n-1);
}
}
}