zoukankan      html  css  js  c++  java
  • 1007 素数对猜想 (20 分)C语言

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

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

    输入格式:
    输入在一行给出正整数N。

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

    输入样例:

    20
    

    输出样例:

    4
    

    思路:

    每算出1个素数,和前一个素数作差并判定

    代码:

    #include <stdio.h>
    #include <math.h>//调用函数sqrt(),计算一个非负实数的平方根.
    int main(){
        int n;
        scanf("%d",&n);
        int i,j,cnt=0;
        int pre=2;
        for(i=3;i<=n;i++){//从第二个素数开始遍历
            for(j=2;j<=(int)sqrt((float)i);j++)
            if(i%j==0)//判断不是素数
            break;
            if(j>sqrt(i)){
                if(i-pre==2)//相邻素数相差2
                cnt++;//计数
                pre=i;//素数替换
            }
        }
        printf("%d",cnt);
        return 0;
    }
    
    欢迎查阅
  • 相关阅读:
    C和指针学习笔记--第五章
    C和指针学习笔记--第四章
    C和指针学习笔记--第三章
    ipables常用命令
    linux网络设计与实现-----第一章
    iptables
    cJSON学习
    Makefile-更新函数库文件
    Makefile隐晦规则
    【Spark学习笔记】01-Spark简介
  • 原文地址:https://www.cnblogs.com/gh110/p/12158249.html
Copyright © 2011-2022 走看看