#include <iostream>
#include <cstdio>
using namespace std;
int t, n;
int main()
{
scanf("%d", & t);
while(t --)
{
scanf("%d", & n);
bool flag = true;
for(int i = 2; i * i <= n; i ++)
{
if(n % i == 0)
{
flag = false;
break;
}
}
if(n == 4)
printf("2\n");
else
{
if(flag)
printf("%d\n", n - 1);
else
printf("0\n");
}
}
return 0;
}
题意:Tina有一个球,它的名字叫zball。zball很神奇,它会每天变大。在第一天的时候,它会变大1倍。在第二天的时候,它会变大2倍。在第n天的时候,它会变大n倍。
zball原来的体积是1。Tina想知道,zball在第n-1天时的体积对n取模是多大呢?
题解:
无聊
这题就是求 (n −1) ! mod n
如果n为合数,显然答案为0.
如果n为素数,那么由威尔逊定理可得答案为 n - 1
注意有个trick为 n = 4