您的位置:首页 > 其它

HDU-5391 Zball in Tina Town

2015-08-16 09:54 387 查看
#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: