nyoj26
来源:互联网 发布:mac上怎么卸载java 编辑:程序博客网 时间:2024/05/10 07:26
孪生素数问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
写一个程序,找出给出素数范围内的所有孪生素数的组数。一般来说,孪生素数就是指两个素数距离为2,近的不能再近的相邻素数。有些童鞋一看到题就开始写程序,不仔细看题,咱们为了遏制一下读题不认真仔细的童鞋,规定,两个素数相邻为1的也成为孪生素数。
输入
第一行给出N(0<N<100)表示测试数据组数。
接下来组测试数据给出m,表示找出m之前的所有孪生素数。
(0<m<1000000)
输出
每组测试数据输出占一行,该行为m范围内所有孪生素数组数。
样例输入
1
14
样例输出
4
来源
[hzyqazasdf]原创
上传者
hzyqazasdf
题解之前的思路是打表,结果超时,后来想到这种发法
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
写一个程序,找出给出素数范围内的所有孪生素数的组数。一般来说,孪生素数就是指两个素数距离为2,近的不能再近的相邻素数。有些童鞋一看到题就开始写程序,不仔细看题,咱们为了遏制一下读题不认真仔细的童鞋,规定,两个素数相邻为1的也成为孪生素数。
输入
第一行给出N(0<N<100)表示测试数据组数。
接下来组测试数据给出m,表示找出m之前的所有孪生素数。
(0<m<1000000)
输出
每组测试数据输出占一行,该行为m范围内所有孪生素数组数。
样例输入
1
14
样例输出
4
来源
[hzyqazasdf]原创
上传者
hzyqazasdf
题解之前的思路是打表,结果超时,后来想到这种发法
#include<stdio.h>#include<iostream>using namespace std;int a[1000005];int dp[1000005];int main(){ for(int i=0;i<1000000;i++) a[i]=1; for(int i=2;i<1000000;i++) { if(a[i]==1) { for(int j=2*i;j<1000000;j+=i) { a[j]=0; } } } dp[1]=0; dp[2]=0; dp[3]=1; for(int i=4;i<1000000;i++) { if(a[i]==1) { if(a[i-2]==1) dp[i]=dp[i-1]+1; else dp[i]=dp[i-1]; } else dp[i]=dp[i-1]; } int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); printf("%d\n",dp[n]); }}
0 0
- nyoj26
- nyoj26孪生素数问题
- nyoj26孪生素数问题
- nyoj26 孪生素数问题
- nyoj26 孪生素数 (用筛法 )
- IntelliJ IDEA 14.x 与 Tomcat 集成,创建并运行Java Web项目
- Android 各国语言缩写及简称详细介绍
- 第二章 再谈 【次数+操作符+动作命令】,及EX命令
- SQL之lab2
- 还在为Android APP演示投影问题而蓝瘦香菇吗?试试Vysor!
- nyoj26
- opencv 车道线检测(一)
- 最短路
- java算法之身份证号码验证
- 使用Windows应用程序模拟银行账户管理系统
- 330_ListView滑动冲突
- 块级元素与行内元素
- github 初使用--傻瓜式详解
- 假期(动态规划+单调队列)