• 作业笔记-素数对猜想


    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     
     
     
  • 相关阅读:
    sql-trace-10046-trcsess-and-tkprof
    教你深入理解软件包的配置、编译与安装过程
    Java RESTful 框架的性能比较
    gcc、arm-Linux-gcc和arm-elf-gcc的组成及区别
    Linux线上系统程序debug思路及方法
    使用systemtap调试Linux内核 :www.lenky.info
    SystemTap使用技巧 1
    gvfs
    Systemtap examples, Network
    .NET 大型信息化建设标准基础数据管理平台
  • 原文地址:https://www.cnblogs.com/loglian/p/12532691.html
Copyright © 2020-2023  润新知