[题目]

  在小于10的素数中有3、5、7组成的等差数列,在小于30的素数中有11、17、23、29组成的等差数列。

  试找出区间[100,1000]内的素数构成的最大等差数列(即等差数列包含的素数个数最多)并打印输出。

[关键字]

  素数;等差数列

[思路]

  1.   先用一个数组标记出 100 ~ 1000 之间哪些是素数;
  2.   差值从 2 ~ 900 进行循环判断

[实现]

 1 #include <stdio.h>
 2 #define        N          1001
 3 #define        MAX_CHA        900
 4
 5 void isPrime(int* num);  // 判断素数
 6 void getMax(int* num);  // 获取最长等差数列
 7
 8 int main(void){
 9     int num[N] = {0};
10
11     isPrime(num);
12     getMax(num);
13
14     return 0;
15 }
16
17 void isPrime(int* num){
18     int i, j;
19
20     // i取值从3 ~ N, 判断是否是素数
21     // 素数标记 1, 合数标记为 0
22     for (i = 3; i <= N; i++){
23         num[i] = 1;
24         for (j = 2; j < i; j++){
25             if (i % j == 0){
26                 // 说明是合数, 跳出本for循环,开始判断下一个数
27                 num[i] = 0;
28                 break;
29             }
30         }
31     }
32
33 }
34
35 void getMax(int* num){
36
37     int cha;    // 差值
38     int i, j, k;
39     int count;  // 记录长度
40     int lastCount = 0;
41     int lastCha, start;
42     // 差值取值从 2 ~ 900
43     for (cha = 2; cha <= MAX_CHA; cha++){
44         // 从101开始,找出最长 素数等差数列
45         for (i = 101; i <= N; i++){
46             count = 0;  // count重置为 0
47             // 中间可能存在更长的数列
48             for (j = i; j <= N; j ++){
49                 for (k = j; k <= N; k += cha){
50                     if (num[k]){
51                         count++;  // 长度加 1
52                     }else{
53                         // 等差数列断掉,从下一个数开始
54                         // 是否找到更长的等差数列
55                         if (count > lastCount){
56                         lastCount = count;
57                         lastCha = cha;
58                         start = j;
59                         }
60                         count = 0;  // count重置为 0
61                         break;
62                     }
63                 }
64
65             }
66         }
67
68     }
69     /*
70     printf("lastCount=%d\n", lastCount);
71     printf("start=%d\n", start);
72     printf("lastCha=%d\n", lastCha);
73     */
74
75     for (i = 0; i < lastCount; i++){
76         printf("%d ", start);
77         start += lastCha;
78     }
79     printf("\n");
80 }

[结果]

  107 137 167 197 227 257

[讨论]

  有更好的做法欢迎和我讨论,我的微信号:lemonnooo

转载于:https://www.cnblogs.com/lemonno/p/6685182.html

【蓝桥杯】最长等差素数数列相关推荐

  1. [蓝桥杯2017初赛]等差素数列-巧妙枚举(思维)

    题目描述 2,3,5,7,11,13,-是素数序列. 类似:7,37,67,97,127,157 这样全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 2004年,格林与华人 ...

  2. 第八届蓝桥杯第二题等差素数列

    标题:等差素数列 2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 200 ...

  3. 2017年蓝桥杯省赛 等差素数序列(暴力循环)

    题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可.2,3,5,7,11,13,....2,3,5,7,11,13,.... 是素数序列. 类似:7,37,67,97,1 ...

  4. python蓝桥杯训练营一 等差素数列

    2,3,5,7,11,13,.... 是素数序列. 类似:7,37,67,97,127,1577,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为 3 ...

  5. 蓝桥杯入门即劝退(六)等差素数数列

    九层之台,起于垒土,你我皆是垒土人✔ 愿我的文章对你有所帮助! 欢迎===关注===点赞===评论,共同学习,共同进步! 一.题目 2,3,5,7,11,13,.... 是素数序列. 类似:7,37, ...

  6. 蓝桥杯真题 17省2-等差素数列 2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30

    题目: 2,3,5,7,11,13,.... 是素数序列. 类似:7,37,67,97,127,1577,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公 ...

  7. 等差素数数列-蓝桥杯

    等差素数列 2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为 30,长度为 6. 2004 ...

  8. 第八届蓝桥杯C/C++省赛题:2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30……

    题目: 标题:等差素数列 2,3,5,7,11,13,-是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 20 ...

  9. 第八届蓝桥杯省赛试题——等差素数数列

    2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 2004年,格林与华人陶 ...

最新文章

  1. ASP.NET MVC Display Mode 移动端视图 配置对微信内置浏览器的识别
  2. WinCE系统声音定制
  3. ASP.NET常用语句(转载)
  4. redis watch使用场景_[Redis] 常用类型及应用场景
  5. [js] 一道变态题 Number.call.call(Number, undefined, 0) 等于什么?
  6. [剑指offer]面试题第[59-2]题[JAVA][队列的最大值][暴力][双端队列]
  7. FFmpeg的C++封装:FFmpegWrapper
  8. WCF测试工具,post经验
  9. wordpress更新主题时,显示无法连接到FTP服务器的问题解决
  10. android adb 刷机工具,ADB 工具 ADB 工具刷机-完美教程资讯
  11. 【系统分析师之路】2020年系统分析师综合知识历年真题
  12. nRF24L01无线模块笔记
  13. 亲测有效,使用postman进行并发测试
  14. 随机森林简单回归预测
  15. 国产操作系统统信UOS简单体验评测
  16. 计算机二级msoffice操作题如何评分,计算机二级MSOffice操作题及答案解析
  17. 一个JAVA小虾米初入江湖
  18. openpyxl中的load_workbook()函数
  19. oracle中文转换为unicode,oracle 用函数unistr将Oracle数据库中的Unicode转换为中文
  20. word修改题注样式图x 为图x.x(wps可用

热门文章

  1. Python OpenCV设置摄像头分辨率
  2. 运维人员的职业升级道路
  3. Ubuntu 20.04 下安装 OpenCV 3.4.11 并测试使用
  4. 斑马打印机EPL2指令自动打印_配合扫描枪边扫边打
  5. git 安装配置(windows环境)
  6. 【CocosCreator 3.x】使用 RenderTexture 实现 3D 渲染在 UI 上 => 攻略
  7. 微信小程序踩坑日记-微信小程序首次加载样式错乱问题
  8. python数据结构教程_GitHub - Frank-Jing/python_data_structures_and_algorithms: Python 中文数据结构和算法教程...
  9. 谈谈为什么需要服务治理(Dubbo)
  10. javascript控制台输出