hdu 2973 威尔逊定理+素数筛法
2016-06-23 22:58
148 查看
先输入test个数,然后对每个n输出Sn的值
威尔逊定理:
若p为质数,则
p|(p-1)!+1
亦:(p-1)! ≡ p-1 ≡ -1(mod p)
【x】是对x取整。
所以观察可得当3k+7为素数,当前k的对应【】里面的数值为1,否则为0,素数筛法搞定。
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; #define LL long long #define MAXN 3000008 #define LL long long int prime[MAXN]={0}; int ans[MAXN]={0}; void isprime(){ prime[0]=prime[1]=1; for(LL i=2;i*i<=MAXN;i++){ if(!prime[i]){ for(LL j=i*2;j<=MAXN;j+=i){ prime[j]=1; } } } } void f(){ for(int i=2;i<1000001;i++){ if((!prime[i*3+7])){ ans[i]=ans[i-1]+1; } else { ans[i]=ans[i-1]; } } } int main() { isprime(); f(); int t,n; cin>>t; while(t--){ scanf("%d",&n); printf("%d\n",ans ); } return 0; }
相关文章推荐
- 数据结构与算法分析 学习笔记(一)
- 火车进站[Codevs 3595]
- mina高并发短连接导致java.io.IOException: Too many open files解决方案
- 关于Java中Daemon线程
- 记事本简单实现思路
- PHP中对于错误信息的提示配置及其含义和解决错误的方法
- 问题 N: 二叉查找树(Ⅲ)-判同
- velt-0.2.7对qemu内核调试的支持
- 个人总结
- 量子组合器
- jquery中ajax方法load get post与脚本文件如php脚本连接时,脚本怎样接受数据?
- 在Ubuntu14.04_ROS_indigo上安装Kinect2驱动和bridge
- Android中的AES加密
- 序列化和反序列化(二)
- C#开发环境简介
- 简单的线程池实现 Java
- 让年轻程序员少走弯路的 14 个忠告
- 二级缓存
- Mac OS X 中一些常用的命令行技巧
- kettle数据库应用