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;
    }
    
    欢迎查阅
  • 相关阅读:
    防御式编程
    Linux磁盘与文件系统管理
    更加抽象
    高质量的子程序
    Linux文件与目录管理
    抽象
    可以工作的类
    Linux的文件权限与目录配置
    条件、循环和其他语句
    软件构建中的设计
  • 原文地址:https://www.cnblogs.com/gh110/p/12158249.html
Copyright © 2011-2022 走看看