转跳点:

  日常水题,虽然要期中考试了,但提还是要水的,一共95题,早晚能水完。来来来,看题!

  到目前为止,我发现乙题普遍需求明确。思路也很明确。这道题两种方法。

  第一种:动态查找,从最大或最小的开始查找,并且从第二个素数出现开始,依次与上一个进行比较,从而确定素数对的个数。

 第二种:先算出0~n范围内的所有素数,然后再查找素数对。 

第一种需要快速的检验素数的算法;第二种需要快速的素数表算法

  关于验证素数我专门写了一篇博客转跳点击我——>o(*////▽////*)q

思路大概就这样,下面看一下代码:

第一种:

/**
* @brief 动态计算素数对
* @note 关键点都注释了
* @author 杨文蓁的小迷弟
*/
#include <stdio.h>
#include <math.h>
#define MAX 100000 int main()
{
int n, count = 0;
scanf("%d", &n); int prePrime = 0; // 存放上一个素数 for (int i = n; i > 1; i--)
{
int flag = 1;
for (int j = 2; j <= (int)sqrt(i); j++)
{
if (i % j == 0)
{
flag = 0; // 标记位为0表示当前i不为素数
break;
}
}
if (flag == 1) // 标记位为1表示当前i为素数
{
if (prePrime > 1 && prePrime - i == 2) // 判断相邻两素数之差
{
count++;
}
prePrime = i;
}
}
printf("%d\n", count);
return 0;
}

第一种比较简单,直接贴了

第二种:

 1 #include <stdio.h>
2 #include <string.h>
3 #define MAXN 100010
4
5 /**
6 * @brief Euler筛法
7 * @note 线性打表
8 * @param size: 范围
9 * @author 杨文蓁的小迷弟
10 */
11 int Isprime[MAXN];
12 int Prime[MAXN]; //记录素数
13
14 void Euler_prime(int size);
15
16 int main()
17 {
18 int size, cnt = 0;
19 scanf("%d", &size);
20 Euler_prime(size);
21 for (int i = 0; i < size; i++)
22 {
23 if (2 == Prime[i + 1] - Prime[i])
24 {
25 //printf("Prime[%d] - Prime[%d]\n%d - %d = %d\n", i+1, i, Prime[i+1], Prime[i], Prime[i+1] - Prime[i]);
26 cnt++;
27 }
28 }
29 printf("%d\n", cnt);
30 return 0;
31 }
32
33 void Euler_prime(int size)
34 {
35 int cnt = 0; //记录素数个数
36
37 Isprime[0] = Isprime[1] = 1;
38 for (int i = 2; i <= size; i++)
39 {
40 if (!Isprime[i]) //
41 {
42 Prime[cnt++] = i;
43 }
44 for (int j = 0; j < cnt && i * Prime[j] < size; j++) //在MAXN范围内讲所有已得出的素数的倍数都清除
45 {
46 Isprime[i * Prime[j]] = 1;
47 if (!(i % Prime[j])) //如果被1某个素数整除的话那就意味着被其他素数筛过了,往后就不用继续了
48 {
49 break;
50 }
51 }
52 }
53 }

第二种

  建议试一下第二种,方法当作锻炼。

PAT不易,诸君共勉!

P 1007 素数对猜想的更多相关文章

  1. PAT乙级 1007. 素数对猜想 (20)

    1007. 素数对猜想 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 让我们定义 dn 为:dn = ...

  2. PAT-乙级-1007. 素数对猜想 (20)

    1007. 素数对猜想 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 让我们定义 dn 为:dn = ...

  3. [C++]PAT乙级1007.素数对猜想 (20/20)

    /* 1007. 素数对猜想 (20) 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷 ...

  4. PAT 1007 素数对猜想(20)

    1007 素数对猜想(20 分) 让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数.显然有d​1​​=1,且对于n>1有d​n​​是偶数."素 ...

  5. 【PAT】1007. 素数对猜想 (20)

    1007. 素数对猜想 (20) 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷多对相 ...

  6. PAT 乙级 1007.素数对猜想 C++/Java

    1007 素数对猜想 (20 分) 题目来源 让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数.显然有d​1​​=1,且对于n>1有d​n​​是偶数.“ ...

  7. PAT 乙级 1007. 素数对猜想 (20) c++ 筛选法求素数

    PAT 乙级 1007. 素数对猜想 (20) c++ 筛选法求素数 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数 ...

  8. PAT (Basic Level) Practice (中文)1007 素数对猜想 (20分)

    1007 素数对猜想 (20分) 让我们定义d​n为:dn = pn+1 − pn,其中p​i是第i个素数.显然有d1 = 1,且对于n > 1有dn是偶数."素数对猜想"认 ...

  9. PAT——1007. 素数对猜想

    让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素数”. 现给定任意正 ...

  10. PAT (Basic Level) Practise (中文)- 1007. 素数对猜想 (20)

    http://www.patest.cn/contests/pat-b-practise/1007 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对 ...

随机推荐

  1. ProgressBarForm 进度条

    ProgressBarForm public partial class ProgressBarForm : Form { private Panel panel1 = new System.Wind ...

  2. 【PAT甲级】1006 Sign In and Sign Out (25 分)

    题意: 给出学生人数M,输入M组学生ID,到机房的时间,离开机房的时间.输出最早到机房的学生的ID,空格,最后离开机房的学生的ID.(M大小未给出,就用了1e5) AAAAAccepted code: ...

  3. maven缺失ojdbc6解决方案 :Missing artifact com.oracle:ojdbc6:jar:11.2.0.1.0问题解决 ojdbc包pom.xml出错

    问题已解决,感谢博主,给您磕头了. | | 解决方法就是把缺少的 jar 手动添加到本地仓库中,再重新引入依赖即可.详情请参考以下链接. | | 转发自: https://blog.csdn.net/ ...

  4. ws2_32.dll的妙用与删除 (禁网)

    ws2_32.dll是Windows Sockets应用程序接口,用于支持Internet和网络应用程序.程序运行时会自动调用ws2_32.dll文件,ws2_32.dll是个动态链接库文件位于系统文 ...

  5. UISearchBar设置背景色

    1.关于UISearchBar的背景颜色,竟然要如下设置才正常: [documentSearchView setBackgroundImage:[UIImage new]]; documentSear ...

  6. zabbix监控 -mysql数据库

    1.禁用安装防护[root@mysql213 ~]# vi /etc/selinux/config #关闭安装 SELINUX=disabled 2.授权zabbix监控账号 mysql -uroot ...

  7. SparkSQL 疫情Demo练习

    在家闲着没事干, 写个简单的疫情数据处理Demo, 顺便回顾下SparkSQL. 模拟数据(以下数据皆为虚构, 如有雷同不胜荣幸) 市民信息(civic_info.csv) id_no,name,se ...

  8. JS中的原始类型和判断方法

    ECMAScript 中定义了 7 种原始类型: Boolean String Number Null Undefined Symbol(新定义) BigInt(新定义) 注意: 原始类型不包含 Ob ...

  9. C# FileStream 对象的Seek()方法-----转载

    原创 kevin617 发布于2010-12-08 11:22:00 阅读数 8630 收藏展开 FileStream 可以随机读写文件 使用 Seek 方法 Seek()  ----------有两 ...

  10. 在Gridview控件中根据Field Name来取得对应列索引

    下面方法,只能在Gridview的BoundField进行操作,而在TemplateField模版中去找的话,就无能为力了,因TemplateField模版没有DataField属性.  public ...