zoukankan      html  css  js  c++  java
  • 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;
     } 
  • 相关阅读:
    美化盒子和文本字体
    图片和多媒体
    学习node1_module对象
    学习vue5_组件
    学习vue4_input
    学习vue3
    学习vue2
    Ubuntu中U盘识别不了
    docker 建立新用户软件安装环境ubuntu
    计算机性能优化笔记
  • 原文地址:https://www.cnblogs.com/valar/p/6139169.html
Copyright © 2011-2022 走看看