Twin Prime Conjecture
Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1425Accepted Submission(s): 432
Problem Description
If we define dn as: dn = pn+1-pn, where pi is the i-th prime. It is easy to see that d1 = 1 and dn=even for n>1. Twin Prime Conjecture states that "There are infinite consecutive primes differing by 2".
Now given any positive integer N (< 10^5), you are supposed to count the number of twin primes which are no greater than N.
Input
Your program must read test cases from standard input.
The input file consists of several test cases. Each case occupies a line which contains one integer N. The input is finished by a negative N.
Output
For each test case, your program must output to standard output. Print in one line the number of twin primes which are no greater than N.
Sample Input
Sample Output
Source
孪生素数即 两个素数之差为2
问n之内的孪生素数对数
思路: 首先打印素数表 不用记录素数 而是用vis标记这个数是不是素数 之后如果vis[i]以及vis[i-2]都没标记 那么对数加1即可
#include<stdio.h>
#include<math.h>
#include<string.h>
int vis[100000+100];
int prime[80000],c;
int a[100000+10];
void get_prime()
{
int i,j,n,m;
c=0;
n=100000;
m=(int)sqrt(n+0.5);
memset(vis,0,sizeof(vis));
for(i=2;i<=m;i++) if(!vis[i])
{
for(j=i*i;j<=n;j+=i) vis[j]=1;//vis的不是素数
}
// for(j=2;j<=n;j++) if(!vis[j])
// prime[c++]=j;
}
int main()
{
int i,j,n,max;
get_prime();
n=0;
a[1]=0;a[0]=0;a[2]=0;a[3]=0;a[4]=0;
for(i=4;i<=100000;i++)
{
// printf("%d %d\n",!vis[i],!vis[i-2]);
if(!vis[i]&&!vis[i-2])
{
n++;
}
a[i]=n;
}
while(i<=100000)
{
a[i++]=n;
}
while(scanf("%d",&n)!=EOF)
{
if(n<0) break;
printf("%d\n",a[n]);
}
return 0;
}
分享到:
相关推荐
Largest prime factor Everybody knows any number can be combined by the prime number. Now, your task is telling me what position of the largest prime factor. The position of prime 2 is 1, prime 3 is 2,...
具体地,题目涉及到了斐波那契数列的一个变种:F(1)=1, F(2)=1, F(3)=1, F(4)=1, F(n>4)=F(n-1)+F(n-2)+F(n-3)+F(n-4),其中n > 4。这里的关键是要能够计算出F(n)的值,而由于这个序列的增长速度非常快,传统的整数...
【标题】"HDU_2010.rar"是一个压缩包文件,其中包含了与"HDU 2010"相关的资源,特别是针对"HDU ACM20"比赛的编程题目。"hdu 2010"和"hdu 20"可能是该比赛的不同简称或分类,而"hdu acm20"可能指的是该赛事的第20届...
### hdu1290解题报告 #### 题目背景与意义 此题作为对杭州电子科技大学五十周年校庆的献礼,通过一道趣味性的数学问题来庆祝这一重要时刻。题目背景设置在一个充满想象力的情境下,即如何通过不同数量的切刀将一个...
压缩包内的文件名“朝花夕拾——hdu”可能表示这是一系列关于HDU题目的代码记录,"朝花夕拾"是一个成语,意味着回忆过去的事情,这里可能是暗示这些代码是作者在过去解决HDU题目时留下的,现在整理出来分享或复习。...
题目“HDU 3333 Turing Tree”要求解决的问题是:给定一个整数序列和一系列区间,计算每个区间内不重复数字的和。由于数据规模较大(N ,000, K ,000),直接的暴力方法效率过低,因此我们需要采用一种更高效的数据...
例如,一个简单的动态规划问题可以是“斐波那契数列”,其中状态通常定义为第n个斐波那契数,状态转移方程为F(n) = F(n-1) + F(n-2),初始条件为F(0) = 0,F(1) = 1。 在HDU的DP题目中,可能会有各种复杂度的题目,...
【标题】"HDU题目java实现"所涉及的知识点主要集中在使用Java编程语言解决杭州电子科技大学(HDU)在线评测系统中的算法问题。HDU是一个知名的在线编程竞赛平台,它提供了大量的算法题目供参赛者练习和提交解决方案...
可以用容斥原理,把 y 与 1 ~ a 互质对数问题转换为 y 的质数因子在 1 ~ a 范围内能整除的个数(质数分解和容斥关系),s 一下即可。 容斥原理是指,在数论中,容斥原理是一种常用的计算技术,用于计算满足某些条件...
ACM HDU 题目分类是指对 HDU 在线判题系统中题目的分类,总结了大约十来个分类。这些分类将有助于编程选手更好地理解和解决问题。 DP 问题 DP(Dynamic Programming,动态规划)是一种非常重要的算法思想,在 ACM ...
- **`#define N 101`**:定义了一个宏 `N`,用于表示矩阵的大小,这里设置为101。 - **`char graph[N][N];`**:定义一个二维字符数组 `graph`,用来存储问题中的地图数据。 ##### 2. DFS 函数 ```c void dfs(int x...
【标题】"hdu.rar_HDU 1089.cpp_OJ题求和_hdu_horsekw5_杭电obj" 提供的信息是关于一个压缩文件,其中包含了一个名为 "HDU 1089.cpp" 的源代码文件,这个文件是为了解决杭州电子科技大学(Hangzhou Dianzi ...
这个题目要求参赛者编写一个程序,模拟一个猜数字的游戏过程,其中游戏规则相当简单:计算机随机选择一个介于1到N之间的整数,玩家有若干次机会猜测这个数字,每次猜测后,计算机会给出提示,告诉玩家猜的数字是偏大...
HDU1059的代码
hdu1001解题报告
hdu 1574 passed sorce
题目名为“hdu 1257 最低拦截系统”,这里的“最低拦截系统”实际上是描述了一个问题场景,而具体的问题通过描述部分可以得知是要求找出给定数组中的最长递增子序列的长度。这里所谓的“最低拦截系统”可能是为了...
【标题】:杭电ACMhdu1163 【描述】:这是一道源自杭州电子科技大学(Hangzhou Dianzi University,简称HDU)的ACM编程竞赛题目,编号为1163。这类问题通常需要参赛者利用计算机编程解决数学、逻辑或算法上的挑战,...
【ACM HDU】指的是在ACM(国际大学生程序设计竞赛,International Collegiate Programming Contest)中,参赛者在杭州电子科技大学(Hangzhou Dianzi University,简称HDU)的在线评测系统上完成并已解决的题目集合...
HDU图论题目分类 HDU图论题目分类是指在杭州电子科技大学(Hangzhou Dianzi University)的判题平台HDU OJ(Online Judge)上收录的一系列图论题目的分类。本分类涵盖了图论领域的多种类型的题目,涉及到图论的基本...