精华内容
下载资源
问答
  • 1007 素数对猜想 (20分)让我们定义d​n​​ 为:d​n​​ = P​n+1​​ −Pn​​ ,其中pi​​ 是第i个素数。显然有d​1​​ =1,且对于n>1有d​n​​ 是偶数。“素数对猜想”认为“存在无穷多相邻且差为2的...

    1007 素数对猜想 (20分)

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

    输入格式:

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

    输出格式:

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

    输入样例:

    20

    输出样例:

    4

    解题思路:

    素数对就是两个差为2的素数,如果按照正常思维直接求输入的数以内的素数,再确定哪些素数的差是2,很简单就能写出代码。但题目限制运行时间不能超过200ms,当输入的数较大时,用常规方法会超时。所以我们在这就用到素数筛选法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。

    完整代码:

    def prime(n, result):

    flag = [1] * (n + 2)

    p = 2

    while (p <= n):

    result.append(p)

    for i in range(2 * p, n + 1, p):

    flag[i] = 0

    while 1:

    p += 1

    if (flag[p] == 1):

    break

    a = int(input())

    result = []

    prime(a, result)

    num = 0

    for i in range(len(result) - 1):

    if (result[i + 1] - result[i] == 2):

    num += 1

    print(num)

    展开全文
  • 素数对猜想”认为“存在无穷多相邻且差为2的素数”。 现给定任意正整数N(<10​5​​),请计算不超过N的满足猜想素数对的个数。 #include<stdio.h> int IsPrime(int n); int main(void) { int N; ...

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

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

    #include<stdio.h>
    
    int IsPrime(int n);
    
    int main(void)
    {
    	int N;
    	int count = 0;
    	scanf("%d", &N);
    	for(int i = 2; i <= N - 2; i++)
    	{
    		if((IsPrime(i)  == 1)  &&  (IsPrime(i + 2) == 1))
    		{
    			count++;
    		}
    	}
    	printf("%d",count);
    
    	return 0;
    }
    
    int IsPrime(int n)
    {
    	for(int i = 2; i * i <= n; i++)
    	{
    		if(n % i == 0)
    		return 0;
    	}
    	
    	return 1;
    }
    
    展开全文
  • 从4开始 判断i跟i-2是否都是素数即可 注:素数是从2开始 1不算 #include <stdio.h> #include <math.h> int isprime(int a) { for (int i=2; i<=sqrt(a); ++i) //判断素数 截止到平方根即可 if (a%...

    https://pintia.cn/problem-sets/994805260223102976/problems/994805317546655744

    思路

    从4开始 判断i跟i-2是否都是素数即可
    注:素数是从2开始 1不算

    #include <stdio.h>
    #include <math.h>
    int isprime(int a)
    {
    	for (int i=2; i<=sqrt(a); ++i)	//判断素数 截止到平方根即可
    		if (a%i==0)
    			return 0;
    	return 1;
    }
    int main()
    {
    	int n,cnt=0;
    	scanf("%d",&n);
    	for (int i=4; i<=n; ++i)
    		if (isprime(i) && isprime(i-2))
    			++cnt;
    	printf("%d",cnt);
    }
    

    在这里插入图片描述

    展开全文
  • Post Views:55最后更新时间: 2021-04-02 18:01:18()这是 拼题A(PTA)《中国大学MOOC-陈越、何钦铭-数据结构-起步能力自测题》的习题。原题在 ...题目描述:自测-2 素数对猜想 (20 point(s))让我们定义...

    Post Views:

    55

    最后更新时间: 2021-04-02 18:01:18

    ()

    这是 拼题A(PTA)《中国大学MOOC-陈越、何钦铭-数据结构-起步能力自测题》的习题。原题在 https://pintia.cn/problem-sets/17/problems/261 (侵删)

    本人的答案仅供交流学习,请勿用于当作答案来提交!

    题目描述:

    98e560a42f67a5ba35fe397b268438e1.png

    自测-2 素数对猜想 (20 point(s))

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

    我的答案:

    鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,也欢迎指正,一起学习,共同进步。

    喜欢就请您给我评一下分吧!(从左到右为低分到高分)

    Click on a star to rate it!

    Submit Rating

    Average rating / 5. Vote count:

    No votes so far! Be the first to rate this post.

    展开全文
  • 素数对猜想 PAT C语言

    2020-04-09 10:19:07
    素数对猜想”认为“存在无穷多相邻且差为2的素数”。 现给定任意正整数N(<10​5​​),请计算不超过N的满足猜想素数对的个数。 输入格式: 输入在一行给出正整数N。 输出格式: 在一行中输出不超过N的满足...
  • 1007 素数对猜想 (20 分) 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是~~*偶数 *~~ ,给定任意正整数N(<10​0000​​ ),请计算不超过N的满足猜想素数对的个数。...
  • PAT乙级1007素数对猜想C语言
  • 1007 素数对猜想 (C语言) 输入格式: 输入在一行给出正整数N。 输出格式: 在一行中输出不超过N的满足猜想素数对的个数。 #include <stdio.h> _Bool is_prime(unsigned int); int main(void) { ...
  • 1007 素数对猜想 (20分) 让我们定义dn为:dn=pn+1−pn,其中p​i是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多相邻且差为2的素数”。 现给定任意正整数N(<10^5),请计算不...
  • 素数对猜想”认为“存在无穷多相邻且差为2的素数”。 现给定任意正整数N(<10​5​​),请计算不超过N的满足猜想素数对的个数。 输入格式: 输入在一行给出正整数N。 输出格式: 在一行中输出不超过N的...
  • #PAT乙级1007 素数对猜想C语言) ##分析 主要是掌握求素数的方法 for(i=2;i<=n;i++)//i表示要判断的数(判断该数是否为素数) { k=(int)sqrt(i); for(j=2;j<=k;j++)//切记是j<=k,等号一定不可以掉 { ...
  • 1007 素数对猜想 (20 分) 让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数。显然有d​1​​=1,且对于n>1有d​n​​是偶数。“素数对猜想”认为“存在无穷多相邻且差为2的素数...
  • 素数对猜想 题目描述: 让我们定义dn为:dn=p(n+1)-p(n),其中p(i)是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多相邻且差为2的素数”。 现给定任意正整数N(<10510^5105),...
  • 1007 素数对猜1想 (20 分) 代码如下: #include<stdio.h> #include<math.h> int ss(int x) { int i; if(x>=2) { for(i=2;i<=(int)sqrt(x);i++) if(x%i==0) return 0; return 1; } ...
  • 1007 素数对猜想(20 分) 让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数。显然有d​1​​=1,且对于n&gt;1有d​n​​是偶数。“素数对猜想”认为“存在无穷多相邻且差为...
  • 程序员测试题:PTA 乙级 1007 素数对猜想C语言版本) 思路: 先求出不大于N的所有素数,利用数组存储所有素数,然后相邻做差值,找出对数,另外还写了求合数的函数以用来备用,目前看测试点5测试超时,mark一下,...
  • 素数对猜想”认为“存在无穷多相邻且差为2的素数”。 现给定任意正整数N(<10 ​5 ​​ ),请计算不超过N的满足猜想素数对的个数。 输入格式: 输入在一行给出正整数N。 输出格式: 在一行中...
  • PTA(Basic Level) 1007:素数对猜想C语言实现) #include <stdio.h> int isPrime(int n) { int i; if(n < 2) return 0; if(n == 2) return 1; if(n%2 == 0) return 0; for(i=3; i*i<=n; i++) ...
  • #include <stdio.h> #include <stdlib.h> #include <math.h> int isPrime(int n) { int i, tmp; tmp = (int)sqrt(n); for(i = 2; i <= tmp; i++) { if(n % i == 0) ... ...
  • PAT乙级真题题解目录 /* * 1. 相邻且差为2的素数对 的筛选有两种思路: * - 判断两个相邻的素数 差值是否为2 (伪) ... * 可知,第一对素数对为 (3, 5); * 由于题目给出数值 &lt;= N,则素...
  • 这是第一次有点错误的 ...#define MAX_n 100000 /* 素数的范围 */ #define YES 1 /* 是素数 */ void get_primes(int s[], int lim){ int i, j; for(i = 2; i < lim; ++i){ for(j = 2; j &l...
  • 题目描述: 让我们定义dnd_ndn​为:dn=pn+1−pn,d_n=p_{n+1}−p_n,dn​=pn+1​−pn​,其中p​p_​p​​...“素数对猜想”认为“存在无穷多相邻且差为2的素数”。 现给定任意正整数N(<10​5),N(<10​^5)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,843
精华内容 737
关键字:

素数对猜想c语言

c语言 订阅