1007. 素数对猜想 (20)

来源:互联网 发布:使命召唤11优化怎么样 编辑:程序博客网 时间:2024/06/11 09:46

有关素数的题目。这里筛选素数用了除以2~sqrt的所有数的办法。

一定要注意变量初始化啊...掩面


1007. 素数对猜想 (20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。

现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。

输入格式:每个测试输入包含1个测试用例,给出正整数N。

输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。

输入样例:
20
输出样例:
4
#include<iostream>#include<string>#include"math.h"using namespace std;bool isPrime(int n) {  for (int i = sqrt((double)n); i >= 2; i--)  {    if (n % i == 0)return false;  }  return true;}int main(){  int n,count=0;  cin >> n;  bool *prime = new bool[n];  for (int i = 0; i < n; i++)prime[i] = false;  for (int i = 2; i <= n; i++) {    if (isPrime(i)) {      prime[i] = true;      if (i + 2 <= n && (prime[i + 2]))        count++;      else if (i + 2 <= n&&isPrime(i + 2))      {        prime[i + 2] = true;        count++;      }    }  }  cout <<count;  return 0;}

原创粉丝点击