码迷,mamicode.com
首页 > 其他好文 > 详细

pta-7-3素数对猜想(20分)

时间:2019-01-26 15:30:46      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:stdio.h   偶数   math   输入   if判断   数值   第一个   判断   prime   

7-3 素数对猜想 (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的满足猜想的素数对的个数。
输入格式:

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

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

20

输出样例:

4

代码如下:

 

#include<stdio.h>

#include<math.h>

int prime(int m)

{

if(m<=1)

{

return 0;

}

else

{

int i;

for(i=2;i<=sqrt(m);i++)

{

if(m%i==0)

 return 0;

}

return 1;

}

}

int main()

{

int n,i,x=2,y=3;

scanf("%d",&n);

for(i=4;i<=n;i++)

{

if(prime(i))

{

x=y;

y=i;

if(y-x==2)

{

con++;

}

}

printf("%d",con);

}

return 0;

}

原来写的是利用循环找到第一个素数在嵌套循环找该素数的下一个素数,if判断差是否等于0,计数器加一;

这个改进后x=y;y=i;这样x中永远存储的是前一个素数值,y更新存储的是第二个一个素数值,在比较,计数器加一;

优化:少了一层循环。

pta-7-3素数对猜想(20分)

标签:stdio.h   偶数   math   输入   if判断   数值   第一个   判断   prime   

原文地址:https://www.cnblogs.com/-data-struct-/p/10323354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!