【威尔逊定理】HDOJ YAPTCHA 2973
来源:互联网 发布:人工智能培训机构 编辑:程序博客网 时间:2024/04/30 20:04
YAPTCHA
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 756 Accepted Submission(s): 396
Problem Description
The math department has been having problems lately. Due to immense amount of unsolicited automated programs which were crawling across their pages, they decided to put Yet-Another-Public-Turing-Test-to-Tell-Computers-and-Humans-Apart 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.
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.
Input
The first line contains the number of queries t (t <= 10^6). Each query consist of one natural number n (1 <= n <= 10^6).
Output
For each n given in the input output the value of Sn.
Sample Input
1312345678910100100010000
Sample Output
0112222334282071609
Source
Central European Programming Contest 2008
题意:
计算题目中给的式子。
解题思路:
当3k+7不是素数时,可以得到((3k+6)!+1)/(3k+7)=[(3k+6)!/(3k+7)],此时括号内的值为0.
当3k+7是素数时,由威尔逊定理知(3k+6)! = -1 (mod 3k+7) ,可以得到((3k+6)!+1)/(3k+7)=[(3k+6)!/(3k+7)]+1,此时括号内的值为1.
AC代码:
#include <stdio.h>#include <math.h>#include <algorithm>using namespace std;const int MAXN = 3100000+10;int prime[MAXN];int E[1000010];bool is_prime(){ prime[0]=prime[1]=false; for(int i=2;i<MAXN;i++){ if(!prime[i]){ for(int j=i*2;j<MAXN;j+=i){ prime[j]=true; } } }}int init(){ is_prime(); E[1]=0; int res=0; for(int i=2;i<=1000000;i++){ if(!prime[3*i+7]) E[i]=E[i-1]+1; else E[i]=E[i-1]; }}int main(){ int t; init(); scanf("%d",&t); while(t--){ int n; scanf("%d",&n); printf("%d\n",E[n]); } return 0;}
0 0
- 【威尔逊定理】HDOJ YAPTCHA 2973
- HDOJ 题目2973 YAPTCHA(数学,威尔逊定理)
- HDU 2973 YAPTCHA(威尔逊定理)
- HDU 2973 YAPTCHA [威尔逊定理]
- HDU 2973 YAPTCHA 威尔逊定理
- Hdu 2973 YAPTCHA (数论 威尔逊定理)
- ACM 数论 HDU 2973 YAPTCHA 威尔逊定理
- HDU 2973 YAPTCHA(威尔逊定理)
- HDOJ 2973 YAPTCHA
- YAPTCHA(数论“威尔逊定理”)
- hdu2973 YAPTCHA(威尔逊定理)
- hdu2973 YAPTCHA(威尔逊定理)
- HDU 2973 YAPTCHA(威尔逊定理+前缀和)
- (hdu 2973 YAPTCHA) <数论—威尔逊定理>
- UVA - 1434 YAPTCHA (威尔逊定理)
- Uva1434 YAPTCHA(威尔逊定理应用)
- HDU 2973 / UVa 1434 / CERC 2008 YAPTCHA (威尔逊定理及其逆定理)
- UVA 1434 YAPTCHA(威尔逊定理简单应用)
- HDU 1599 find the mincost route(Floyd判最小环)
- Visual Studio2015错误C4996 'strcpy': This function or variable may be unsafe. Consider using strcpy_
- 分布式系统的Raft算法
- 微软涉足千元机市场 发布883元手机Lumia 550
- 结构体字节对齐
- 【威尔逊定理】HDOJ YAPTCHA 2973
- [每日一答] [20151007] RStudio中,出现中文乱码问题的解决方案
- PHP MYSQL命令
- HTC悄然发布One E9s 售人民币2063元
- 整洁的代码
- PHP第一季视频教程.李炎恢.学习笔记(一)(第1章 PHP概述(1)、(2)、(3))
- just a test
- 微软发布会推Win10新品 Lumia手机与电脑齐更新
- 边缘触控并非唯一 手机新交互方式盘点