nyist 26
2016-03-09 19:36
295 查看
#include <stdio.h>
int prime[1000001],k=0;
bool vis[1000001];
void init(){
for(int i=2;i<=1000;i++)
if(vis[i]==false)
for(int j=i+i;j<=1000000;j+=i)
vis[j]=true;
for(int i=2;i<1000000;i++)
if(vis[i]==false)
prime[k++]=i;
}
int main(){
init();
int t,n;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
int ans=0;
for(int i=1;prime[i]<=n;i++)
if(prime[i]-prime[i-1]==2||prime[i]-prime[i-1]==1)//实在纠结用if(prime[i]-prime[i-1]<=2)wa了,发现是多了一个两者相等的情况,可是两个下标不同的素数,怎么会相等呢?表示纠结
ans++;
printf("%d\n",ans);
}
return 0;
}
int prime[1000001],k=0;
bool vis[1000001];
void init(){
for(int i=2;i<=1000;i++)
if(vis[i]==false)
for(int j=i+i;j<=1000000;j+=i)
vis[j]=true;
for(int i=2;i<1000000;i++)
if(vis[i]==false)
prime[k++]=i;
}
int main(){
init();
int t,n;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
int ans=0;
for(int i=1;prime[i]<=n;i++)
if(prime[i]-prime[i-1]==2||prime[i]-prime[i-1]==1)//实在纠结用if(prime[i]-prime[i-1]<=2)wa了,发现是多了一个两者相等的情况,可是两个下标不同的素数,怎么会相等呢?表示纠结
ans++;
printf("%d\n",ans);
}
return 0;
}
相关文章推荐
- MATLAB 常用函数笔记
- Python爬虫学习笔记(3)-XPath与多线程爬虫
- 从马文到AlphaGo AI走过了怎样的70年?
- hql 语法与详细解释<转>
- Parallelogram Counting(平行四边形个数,思维转化)
- 训练指南DP例题读后感
- 【spark】采用LogisticRegression(ML API篇)对MNIST的0-1数字进行识别
- Python爬虫学习笔记(2)-单线程爬虫
- linux添加系统调用总结(内核版本4.4.4)
- 笔记 :MATLAB 字符串
- 读书笔记--推荐系统实践(2)
- 解决Windbg的waiting to reconnect
- JavaScript 原型概念深入理解
- 面试经历
- Nginx学习---用不同域名访问同一台机器的不同项目
- [转]钱没了,公司就死了,科技创业公司如何才能不把钱花光?
- VS 报cmath(19): error C2061: 语法错误: 标识符“acosf” 错误
- hdu-1087 Super Jumping! Jumping! Jumping! [最大递增子段和]
- NYOJ-104最大和(动归题)及连续最大和核心
- 【POJ 2942】Knights of the Round Table(双联通分量+染色判奇环)