数组·1·素数对猜想

来源:互联网 发布:淘宝学生女装店 知乎 编辑:程序博客网 时间:2024/06/04 18:10

_

7-5 素数对猜想(20 分)

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

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

输入格式:

输入在一行给出正整数N

输出格式:

在一行中输出不超过N的满足猜想的素数对的个数。

输入样例:

20

输出样例:

4
____________________________________________________

#include<stdio.h>
int main()
{
  int N,i,j,m=1,count=1;
  scanf("%d",&N);
  if(N==1&&N==2&&N==3&&N==4)
  printf("0");
  else{
  for(i=2;i<=N;i++)
  { m=m+2;
    for(j=2;j<=m;j++){
      if(m%i==0)
      break;
    if(j>m)
      count++;}
      if(m>N)
      break;



  } printf("%d",count);}
  return 0;
}

_____________________________________________________________

  1. #include <stdio.h>  
  2. #include <math.h>  
  3. #include <stdbool.h>  
  4. bool isPrime(int);  
  5.   
  6. int main(void)  
  7. {  
  8.     int N,i;  
  9.     int count = 0;  
  10.     scanf("%d", &N);  
  11.     if (N <= 4)  
  12.         printf("0");  
  13.     else  
  14.     {  
  15.         for (i = 3; i <= N - 2; i++)  
  16.             if (isPrime(i) && isPrime(i + 2))  
  17.                 count++;  
  18.         printf("%d",count);  
  19.     }     
  20.     return 0;  
  21. }  
  22. bool isPrime(int n)  
  23. {  
  24.     int i;  
  25.     if (n == 1 || n == 0)  
  26.         return false;  
  27.     else  
  28.     {  
  29.         for (i = 2; i <= sqrt((double)n); i++)  
  30.             if (n%i == 0)  
  31.                 return false;  
  32.     }  
  33.     return true;  


__________________________________________________________________
原创粉丝点击