hdu5391-Zball in Tina Town-威尔逊定理(假证明)
Tina has a ball called zball. Zball is magic. It grows larger every day. On the first day, it becomes 11 time as large as its original size. On the second day,it will become 22 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.
InputThe first line of input contains an integer TT, representing the number of cases.
The following TT lines, each line contains an integer nn, according to the description.
T≤105,2≤n≤109T≤105,2≤n≤109
OutputFor each test case, output an integer representing the answer.Sample Input
2
3
10
Sample Output
2
0 翻译:求(n-1)!%n
前置技能:威尔逊定理
威尔逊定理概念:当且仅当p为素数,(p-1)! ≡ -1 (mod p) → (p-1)!+1 = 0 (mod p)
网上关于定理的证明,什么缩系,死都看不懂,只好记住公式,举举例子说服自己这定理是真的。
1.当p为合数时,(p-1)! %p = 0。假设p=a*b,(p-1)! = 1*2*3*4*...*(p-1),其中有两个数是a和b,则(p-1)!%(a*b)=0;
多出一个1的时候,没办法被p整除。
2.当p为素数时,假设p=7,(p-1) != 1*2*3*4*5*6,关于大家所说的2到p-2这些数两两配对,2和4配对,8%7=1;3和5配对,
15%7=1;配对后模p结果为1,最后一个数模p结果为p-1由同余定理可知再补一个1就可以被p整除
再举例p=11,(p-1)! = 1*2*3*4*5*6*7*8*9*10,两两配对,2*6%11=1; 3*4%11=1; 5*9%11=1; 7*8%11=1; 1*10%11=10;
显然10!再加1就可以被11整除。
3.特例:p=4时,3! = 1*2*3 = 6; 6%4=2, 虽然p是合数,但(p-1)%p !=0
#include <iostream>
#include<stdio.h>
#include <algorithm>
#include<string.h>
#include<cstring>
#include<math.h>
#define inf 0x3f3f3f3f
#define ll long long
using namespace std; bool flag(int x)
{
int q=sqrt(x);
for(int i=;i<=q;i++)
{
if(x%i==)
return false;
}
return true;
} int main()///hdu5391,威尔逊定理
{
int t;
int n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
if(n==)
printf("2\n");
else if(flag(n))
printf("%d\n",n-);
else printf("0\n");
}
return ;
}
hdu5391-Zball in Tina Town-威尔逊定理(假证明)的更多相关文章
- hdu5391 Zball in Tina Town(威尔逊定理)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Zball in Tina Town Time Limit: 3000/1500 ...
- hdu 5391 Zball in Tina Town 威尔逊定理 数学
Zball in Tina Town Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Oth ...
- HDU-5391 Zball in Tina Town
(n-1)!/n 就是如果n为素数,就等于n-1else为0. 求素数表: Zball in Tina Town Time Limit: 3000/1500 MS (Java/Others) Memo ...
- hdu5391 Zball in Tina Town
Problem Description Tina Town is a friendly place. People there care about each other. Tina has a ba ...
- HDU 5391 Zball in Tina Town【威尔逊定理】
<题目链接> Zball in Tina Town Problem Description Tina Town is a friendly place. People there care ...
- C#版 - HDUoj 5391 - Zball in Tina Town(素数) - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. HDUoj 5 ...
- 判素数+找规律 BestCoder Round #51 (div.2) 1001 Zball in Tina Town
题目传送门 /* 题意: 求(n-1)! mod n 数论:没啥意思,打个表能发现规律,但坑点是4时要特判! */ /***************************************** ...
- BC - Zball in Tina Town (质数 + 找规律)
Zball in Tina Town Accepts: 541 Submissions: 2463 Time Limit: 3000/1500 MS (Java/Others) Memory ...
- Zball in Tina Town
Zball in Tina Town Accepts: 356 Submissions: 2463 Time Limit: 3000/1500 MS (Java/Others) Memory ...
- 【HDU5391】Zball in Tina Town
[题目大意] 一个球初始体积为1,一天天变大,第一天变大1倍,第二天变大2倍,第n天变大n倍.问当第 n-1天的时候,体积变为多少.注意答案对n取模. [题解] 根据威尔逊定理:(n-1)! mod ...
随机推荐
- CVPR 2019 | 用异构卷积训练深度CNN:提升效率而不损准确度
对于深度卷积神经网络而言,准确度和计算成本往往难以得兼,研究界也一直在探索通过模型压缩或设计新型高效架构来解决这一问题.印度理工学院坎普尔分校的一篇 CVPR 论文则给出了一个新的思路——使用异构的卷 ...
- ob系列函数中常用函数
ob_start(); //打开一个输出缓冲区,所有的输出信息不再直接发送到浏览器,而是保存在输出缓冲区里面. ob_clean(); //删 ...
- phpmyadmin无登录表单无法登陆
发现我的博客的phpmyadmin登录过一次成功之后,后面在登录没有登录表单了,查了很多原因,下面的方法亲测可以解决 打开 phpMyAdmin\libraries\plugins\auth\Auth ...
- svn 提交数据
linux
- 关于js的一些收集
判断jquery文件有没有加载 !window.jQuery && alert('jQuery未导入!请确认路径是否正确'); 禁止页面跳转 javascript:void(0); / ...
- 《算法》第四章部分程序 part 16
▶ 书中第四章部分程序,包括在加上自己补充的代码,Dijkstra 算法求有向 / 无向图最短路径,以及所有顶点对之间的最短路径 ● Dijkstra 算法求有向图最短路径 package packa ...
- python学习笔记_week20
note 1.Django请求的生命周期 路由系统 -> 视图函数(获取模板+数据=>渲染) -> 字符串返回给用户 2.路由系统 /index/ -> 函数或类.as_vie ...
- spark核心原理
spark运行结构图如下: spark基本概念 应用程序(application):用户编写的spark应用程序,包含驱动程序(Driver)和分布在集群中多个节点上运行的Executor代码,在执行 ...
- django之setup()
#django包的__init__.py包含setup函数def setup(): """ Configure the settings (this happens as ...
- Address already in use: JVM_Bind 端口被占用的几个解决办法
运行Tomcat时若出现Address already in use: JVM_Bind 端口被占用,一般使用下面几个办法可以解决: 假设端口为1099 1.启动cmd, 执行命令netstat -a ...