zoukankan      html  css  js  c++  java
  • 作业笔记-素数对猜想

    7-2 素数对猜想
     

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

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

    输入格式:

    输入在一行给出正整数N

    输出格式:

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

    输入样例:20

    输出样例:4
     
    要先明确素数的求法,对于数字n,在1到根号n之间如果有整数可以除尽n,则n不是素数。
    首先求出20以内所有的素数,并存入数组中,再依次检验是否前后素数差值为2,若为2则用计数器i++。
     1 #include <iostream>
     2 #include <math.h>
     3 #include <stdio.h>
     4 using namespace std;
     5 int main()
     6 {
     7     double m;//m为n的开方
     8     int a[1000000];
     9     a[0]=2;a[1]=3;
    10     int n=4,j=2,s=0,N,sum,d;//s为最后得数
    11     scanf("%d",&N);
    12     
    13     for(n=4;n<=N;n++)//全部质数
    14     {
    15     m=sqrt(n);
    16         
    17     for(int i=2;;)
    18         {
    19         if(n%i==0)  break;
    20             else i++;
    21         if(i>m)
    22             {
    23             a[j]=n;
    24        //    cout<<"a["<<j<<"]="<<a[j]<<'
    ';
    25             j++;
    26             break;
    27             }
    28         }
    29     }
    30     sum=j;
    31 
    32         for(j=0;j<N;j++)
    33         {
    34             d=a[j+1]-a[j];
    35             if(d==2)   {//cout<<"a["<<j+1<<"]-a["<<j<<"]="<<a[j+1]<<"-"<<a[j]<<"="<<2<<'
    ';
    36                 s++;
    37                 }
    38         }
    39         
    40     cout<<s<<"
    ";
    41 
    42     }
    43     
     
     
  • 相关阅读:
    分布式并行计算MapReduce
    备份
    【爬虫综合作业】猫眼电影TOP100分析
    爬取全部的校园新闻
    获取一篇新闻的全部信息
    爬虫原理
    中文词频统计
    复合数据类型,英文词频统计
    字符串、文件操作,英文词频统计预处理
    期末大作业
  • 原文地址:https://www.cnblogs.com/loglian/p/12532691.html
Copyright © 2011-2022 走看看