1007素数对猜想(20分)(代码片段)

manok manok     2023-02-13     164

关键词:

让我们定义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

我的思路:找到所有不大于n的所有素数,对于每一个素数,与前一个素数相减,如果满足条件ans++;关于如何判定素数,刚开始我才用的一般的方法for循环至num,
提交后运行超时。参考网上的做法只需循环至sqrt(num)即可。具体分析:回到素数的定义,素数的因数只有1和它本身。若一个数num不是素数的话,
那么num的因数a、b必定分布在sqrt(num)的两侧(num/a=b;num/b=a;),因此我们循环它可能存在的因数i时只需让i<=sqrt(num)即可。

#include <bits/stdc++.h>
using namespace std;

// 1 2 3 5 7 11 13 17 19
int main()

    int n;
    bool flag=true;
    cin>>n;        //找出不大于n的素数,并将它们存放在可变数组中
    int ans=0;
    if(n<5)
        ans=0;
    else
    
        //找出不大于n的素数
        int lastnum=3;
        
        for(int num=5;num<=n;num+=2)
        
            for(int i=3;i<=sqrt(num);i+=2)
            
                if(num%i==0)    //不是素数
                
                    flag=false;
                    break;
                  
            
            if(flag)    //是素数
            
                if(num-lastnum==2)
                    ans++;
                //cout<<num<<endl;
                lastnum=num;
            
            flag=true; 
         
    
    cout<<ans<<endl;
    return 0;
 

 





























pta乙级1007素数对猜想(20分)(代码片段)

  1#include<iostream>2#include<cmath>3usingnamespacestd;45boolisprime(inti)6for(intj=2;j<=sqrt(i);++j)7if(i%j==0)8return0;91011return1;1213intmain()14intn=0;15intcount= 查看详情

1007素数对猜想(20分)(代码片段)

1007素数对猜想(20分)让我们定义d?n??为:d?n??=p?n+1???p?n??,其中p?i??是第i个素数。显然有d?1??=1,且对于n>1有d?n??是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<10?5??),请计算不超过N... 查看详情

1007素数对猜想(20分)(代码片段)

1007素数对猜想(20分) 让我们定义d?n??为:d?n??=p?n+1??−p?n??,其中p?i??是第i个素数。显然有d?1??=1,且对于n>1有d?n??是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<10?... 查看详情

java1007素数对猜想(20分)pat乙级pat(basiclevel)practice(中文)(代码片段)

你是最棒的前言题目:1007素数对猜想(20分)要点:代码前言学得越多,不会得越多种一颗树的最佳时间是十年前,其次就是现在pat所有题解代码都会陆续上传到Github,请好兄弟们自行下载:https://github.com/233... 查看详情

1007素数对猜想(20分)(代码片段)

让我们定义d?n??为:d?n??=p?n+1???p?n??,其中p?i??是第i个素数。显然有d?1??=1,且对于n>1有d?n??是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<10?5??),请计算不超过N的满足猜想的素数对的... 查看详情

patb1007素数对猜想(20分)(代码片段)

让我们定义d?n??为:d?n??=p?n+1???p?n??,其中p?i??是第i个素数。显然有d?1??=1,且对于n>1有d?n??是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<),请计算不超过N的满足猜想的素数对的个数... 查看详情

pat乙级1007.素数对猜想(20)(代码片段)

1007.素数对猜想(20)让我们定义dn为:dn=pn+1–pn,其中pi是第i个素数。显然有d1=1且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足... 查看详情

1007素数对猜想(20分)

1007素数对猜想(PAT乙级C++实现)-光金正博客-CSDN博客https://blog.csdn.net/guangjinzheng/article/details/80509623素数的判定方法,恶补呸C++输入输出的格式问题-猴子居士的博客-CSDN博客https://blog.csdn.net/houzijushi/article/details/81544325 刷题中... 查看详情

pat乙级.1007.素数对猜想(20)(代码片段)

...我们定义dn 为:dn =pn+1 -pn,其中pi 是第i个素数。显然有d1=1且对于n>1有dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的... 查看详情

1007素数对猜想(代码片段)

让我们定义d?n??为:d?n??=p?n+1???p?n??,其中p?i??是第i个素数。显然有d?1??=1,且对于n>1有d?n??是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<),请计算不超过N的满足猜想的素数对的个数... 查看详情

pat乙级1007(代码片段)

1007素数对猜想(20分)让我们定义d?n??为:d?n??=p?n+1??−p?n??,其中p?i??是第i个素数。显然有d?1??=1,且对于n>1有d?n??是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<10?5??)... 查看详情

1007素数对猜想(代码片段)

1007 素数对猜想 (20分) 让我们定义d?n??为:d?n??=p?n+1??−p?n??,其中p?i??是第i个素数。显然有d?1??=1,且对于n>1有d?n??是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整... 查看详情

乙_1007素数对猜想(20分)

     分析:素数是在大于1的自然数中,除了1和它本身以外不再有其他因数。2是素数,因为2只能被1和它自己本身整除。 sqrt函数在<cmath>中 求素数代码 会背boolisPrime(intn) if(n==2||n==3) returntrue;... 查看详情

pat-1007素数对猜想(代码片段)

题目:1007素数对猜想(20分)让我们定义dn为:dn=pn+1?pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<10^5),请计算不超过N的满足猜... 查看详情

1007.素数对猜想(20)

...我们定义dn 为:dn =pn+1 -pn,其中pi 是第i个素数。显然有d1=1且对于n>1有dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜 查看详情

1007.素数对猜想(20)

1007.素数对猜想(20)让我们定义dn为:dn=pn+1-pn,其中pi是第i个素数。显然有d1=1且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个... 查看详情

1007.素数对猜想(20)java

...没看懂,还是别人指点了下,就是求n以内数值相差为2的素数对是多少。提交的时候,时间过不了关,第7行的循环是+2,偶数肯定不是素数,直接不判断。第23行i<Math.sqrt(a),可以通过了。代码:题目:1007.素数对猜想(20)让我们... 查看详情

1007.素数对猜想(代码片段)

题目截图: 思路:  先生成素数表,然后验证每一对相邻且差为2的数是否为素数对。 代码:1/*21007.素数对猜想3*/45#include<stdio.h>6#include<string.h>7#include<math.h>8#include<stdlib.h>9#include<time.h>1011#def 查看详情