HDU2973(威尔逊定理)
YAPTCHA
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 875 Accepted Submission(s): 458
on their webpages. In short, to get access to their scientific papers, one have to prove yourself eligible and worthy, i.e. solve a mathematic riddle.
However, the test turned out difficult for some math PhD students and even for some professors. Therefore, the math department wants to write a helper program which solves this task (it is not irrational, as they are going to make money on selling the program).
The task that is presented to anyone visiting the start page of the math department is as follows: given a natural n, compute
where [x] denotes the largest integer not greater than x.
13
1
2
3
4
5
6
7
8
9
10
100
1000
10000
0
1
1
2
2
2
2
3
3
4
28
207
1609
Central European Programming Contest 2008
威尔逊定理:当( p -1 )! ≡ -1 ( mod p ) 时,p为素数。
证明如下
充分性:
当p不是素数,那么令p=a*b ,其中1 < a < p-1 ,1 < b < p-1.
(1)若a≠b,
因为(p-1)!=1*2*...*a*...*b*...*p-1,
所以(p-1)!≡ 0 (mod a)
(p-1)!≡ 0 (mod b)
可得(p-1)!≡ 0 (mod a*b) ,
即 (p-1)!≡ 0 (mod p)
与( p -1 )! ≡ -1 ( mod p ) 矛盾
(2)若a=b
因为(p-1)!=1*2*...*a*...*2a*...*p-1.
所以(p-1)!≡ 0 (mod a)
(p-1)!≡ 0 (mod 2a)
可得(p-1)!≡ 0 (mod a*2a) => (p-1)!≡ 0 (mod a*a) ,
即 (p-1)!≡ 0 (mod p)
与( p -1 )! ≡ -1 ( mod p ) 矛盾
因此p只能是素数。
必要性:
当p为2,( p -1 )! ≡ -1 ( mod p ) 显然成立
当p为3,( p -1 )! ≡ -1 ( mod p ) 显然成立
对于p>=5,令M={2,3,4,...,p-2}.
对于a∈M,令N={a,2*a,3*a,4*a,....(p-2)*a,(p-1)*a}
令1 <= t1 <= p-1 ,1 <= t2 <= p-1,t1 ≠ t2
那么t1*a∈N,t2*a∈N。
若t1*a≡t2*a (mod p) ,那么|t1-t2|*a ≡ 0 (mod p)。
因为|t1-t2|*a∈N,与N中元素不能被p除尽矛盾。
所以t1*a≡t2*a不成立。
那么N中元素对p取模后形成的集合为{1,2,3,4,...,p-1}.
设x*a ≡ 1 (mod p)。
当x=1时, x*a=a, 对p取模不为1,所以不成立。
当x=p-1时,(p-1)*a=p*a-a, 对p取模不为1,所以不成立。
当x=a时,a*a≡1 (mod p),可得(a+1)*(a-1)≡ 0 (mod p),a=1或a=p-1 ,所以不成立。
综上所述,x,a∈M,并且当a不同时,x也随之不同。
所以,M集合中每一个元素a都能够找到一个与之配对的x,使得x*a ≡ 1 (mod p).
(p-1)!=1*2*3*...p-1
=1*(2*x1)*(3*x3)*...*(p-1)
所以, (p-1)!≡1*(p-1) (mod p)
即,(p-1)!≡-1 (mod p)
证明完毕
#include <bits/stdc++.h>
using namespace std; #define mem(a) memset(a, 0, sizeof(a))
const int maxn = 1e6+100;
int ans[maxn*3+100]; int isprime(int n) {
if (n == 1) return 0;
if (n == 2) return 1;
for (int i = 2; i*i<=n; i++) {
if (n%i == 0) return 0;
}
return 1;
} void init() {
mem(ans);
for (int i = 1; i<maxn; i++) {
if (isprime(i*3+7)) ans[i] = ans[i-1]+1;
else ans[i] = ans[i-1];
}
} int main() {
init();
int t;
scanf("%d", &t);
while (t --) {
int n;
scanf("%d", &n);
printf("%d\n",ans[n]);
} return 0;
}
HDU2973(威尔逊定理)的更多相关文章
- hdu2973-YAPTCHA-(欧拉筛+威尔逊定理+前缀和)
YAPTCHA Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- 威尔逊定理--HDU2973
参考博客 HDU-2973 题目 Problem Description The math department has been having problems lately. Due to imm ...
- hdu2973 YAPTCHA【威尔逊定理】
<题目链接> 题目大意: The task that is presented to anyone visiting the start page of the math departme ...
- hdu5391 Zball in Tina Town(威尔逊定理)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Zball in Tina Town Time Limit: 3000/1500 ...
- hdu 2973"YAPTCHA"(威尔逊定理)
传送门 题意: 给出自然数 n,计算出 Sn 的值,其中 [ x ]表示不大于 x 的最大整数. 题解: 根据威尔逊定理,如果 p 为素数,那么 (p-1)! ≡ -1(mod p),即 (p-1)! ...
- HDU 5391 Zball in Tina Town【威尔逊定理】
<题目链接> Zball in Tina Town Problem Description Tina Town is a friendly place. People there care ...
- YAPTCHA UVALive - 4382(换元+威尔逊定理)
题意就是叫你求上述那个公式在不同N下的结果. 思路:很显然的将上述式子换下元另p=3k+7则有 Σ[(p-1)!+1/p-[(p-1)!/p]] 接下来用到一个威尔逊定理,如果p为素数则 ( p -1 ...
- HDU - 2973:YAPTCHA (威尔逊定理)
The math department has been having problems lately. Due to immense amount of unsolicited automated ...
- HDU6608-Fansblog(Miller_Rabbin素数判定,威尔逊定理应用,乘法逆元)
Problem Description Farmer John keeps a website called ‘FansBlog’ .Everyday , there are many people ...
随机推荐
- iOS SDAutoLayout图文混排-共享
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #526eda } span.s1 { color: #4dbf5 ...
- ArcGIS 网络分析[2.1] 最短路径
最短路径求解 [如果看到此博客还没有网络数据集的,请参考第一章的内容,点击我,看目录] 最短路径,是什么最短?时间最短?距离最短?什么距离?路程距离? 考虑到拥堵问题,限速问题,换乘问题,在现实的最短 ...
- rtmp流媒体搭建的所需安装包
说明:这是基于nginx rtmp控件 搭建的rtmp流媒体服务器,在此附上的是搭建所需要的安装包,具体的搭建过程看我之前的"ubuntu流媒体搭建" 链接地址:http://p ...
- 什么是AJAX? AJAX:”Asynchronous JavaScript and XML”中文意思:异步JavaScript和XML。
指一种创建交互式网页应用的网页开发技术. AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词. 不是指一种单一的技术,而是有机地利用了一系列相关的技术: web标准( Stan ...
- Python安装和开发环境搭建
1.官网:http://www.python.org/download/下载安装包,目前最新版本为3.6,安装包很多地方可以下,也可以在360软件管家上下载安装 特别要注意勾选:Add Python ...
- K:常见的正则表达式
@装载自:http://zxin.cnblogs.com/ 平时对字符串进行校验和处理的时候难免会用到正则表达式,通常采用的方式是去网上寻找相关的正则表达式,之后copy下来进行修改,以使其满足自己的 ...
- 房上的猫:java基础知识部分知识点
1.Java常见的注释有哪些,语法是怎样的? 1)单行注释用//表示,编译器看到//会忽略该行//后的所文本 2)多行注释/* */表示,编译器看到/*时会搜索接下来的*/,忽略掉/* */之间的文 ...
- (class file version 53.0), Java Runtime versions up to 52.0错误的解决方法
遇到这个错误是在Apache Tomcat上部署应用程序的时候遇到的,具体的错误描述是: java.lang.UnsupportedClassVersionError: HelloWorld has ...
- Flask 框架 简介
一.Flask介绍 Flask是一个基于Werkzeug,Jinja 2 轻量级的web开发框架, 使用Python开发, 上手简单. 二.安装Flask 三.第一个Flask程序 1.编写app.p ...
- scrapy使用PhantomJS爬取数据
环境:python2.7+scrapy+selenium+PhantomJS 内容:测试scrapy+PhantomJS 爬去内容:涉及到js加载更多的页面 原理:配置文件打开中间件+修改proces ...