• 1007. 素数对猜想 (20)


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

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

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

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

    输入样例:

    20
    

    输出样例:

    4

    思路:
     1.素数筛法,选出所有素数存入数组primeArr[]
     2.for循环遍历相邻两素数的差,若为2则输出
     3.注意数组的边界一定要足够
    #include<stdio.h>
    #include<math.h>
    #define M 100010
    
    int arr[M];//此处申请数组arr,则元素自动赋值为零 
    int primeArr[M];
    void searchPrime()
    {    
        int cnt = 0;
        int tmp = (int)sqrt(M)+1; 
        for(int i=2; i<tmp; i++)
        {
            if(arr[i] == 1)
                continue;
            for(int j=i*i; j<M; j+=i)
                {
                    arr[j] = 1;
                }
        }
        
        for(int i=2; i<M; i++)
        {
            if(arr[i])
                continue;
            else
                primeArr[cnt++] = i;
            
        } 
    }
    
    
    int main()
    
    {
        int N;
        scanf("%d",&N);
        searchPrime();
        int num = 0;
    
        for(int i =0; primeArr[i+1]<=N; i++)
        {
            int j = i+1;
                if(primeArr[j] - primeArr[i] == 2)
                    num++;
                else 
                    continue;
        }
        printf("%d
    ",num);    
        return 0;
     } 
  • 相关阅读:
    github pages 正确访问方式
    jetty 热部署
    mysql 距离函数
    通过微信公众号ID生成公众号的二维码
    SQL Server 数据库备份失败解决方法
    js 替换部分内容为星号
    mysql 允许远程登录
    nginx 跨域配置
    两台阿里云服务器之间数据迁移
    新装修入住常识有什么
  • 原文地址:https://www.cnblogs.com/valar/p/6139169.html
Copyright © 2020-2023  润新知