【蓝桥杯】最长等差素数数列
[题目]
在小于10的素数中有3、5、7组成的等差数列,在小于30的素数中有11、17、23、29组成的等差数列。
试找出区间[100,1000]内的素数构成的最大等差数列(即等差数列包含的素数个数最多)并打印输出。
[关键字]
素数;等差数列
[思路]
- 先用一个数组标记出 100 ~ 1000 之间哪些是素数;
- 差值从 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
【蓝桥杯】最长等差素数数列相关推荐
- [蓝桥杯2017初赛]等差素数列-巧妙枚举(思维)
题目描述 2,3,5,7,11,13,-是素数序列. 类似:7,37,67,97,127,157 这样全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 2004年,格林与华人 ...
- 第八届蓝桥杯第二题等差素数列
标题:等差素数列 2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 200 ...
- 2017年蓝桥杯省赛 等差素数序列(暴力循环)
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可.2,3,5,7,11,13,....2,3,5,7,11,13,.... 是素数序列. 类似:7,37,67,97,1 ...
- python蓝桥杯训练营一 等差素数列
2,3,5,7,11,13,.... 是素数序列. 类似:7,37,67,97,127,1577,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为 3 ...
- 蓝桥杯入门即劝退(六)等差素数数列
九层之台,起于垒土,你我皆是垒土人✔ 愿我的文章对你有所帮助! 欢迎===关注===点赞===评论,共同学习,共同进步! 一.题目 2,3,5,7,11,13,.... 是素数序列. 类似:7,37, ...
- 蓝桥杯真题 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 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公 ...
- 等差素数数列-蓝桥杯
等差素数列 2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为 30,长度为 6. 2004 ...
- 第八届蓝桥杯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 ...
- 第八届蓝桥杯省赛试题——等差素数数列
2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 2004年,格林与华人陶 ...
最新文章
- ASP.NET MVC Display Mode 移动端视图 配置对微信内置浏览器的识别
- WinCE系统声音定制
- ASP.NET常用语句(转载)
- redis watch使用场景_[Redis] 常用类型及应用场景
- [js] 一道变态题 Number.call.call(Number, undefined, 0) 等于什么?
- [剑指offer]面试题第[59-2]题[JAVA][队列的最大值][暴力][双端队列]
- FFmpeg的C++封装:FFmpegWrapper
- WCF测试工具,post经验
- wordpress更新主题时,显示无法连接到FTP服务器的问题解决
- android adb 刷机工具,ADB 工具 ADB 工具刷机-完美教程资讯
- 【系统分析师之路】2020年系统分析师综合知识历年真题
- nRF24L01无线模块笔记
- 亲测有效,使用postman进行并发测试
- 随机森林简单回归预测
- 国产操作系统统信UOS简单体验评测
- 计算机二级msoffice操作题如何评分,计算机二级MSOffice操作题及答案解析
- 一个JAVA小虾米初入江湖
- openpyxl中的load_workbook()函数
- oracle中文转换为unicode,oracle 用函数unistr将Oracle数据库中的Unicode转换为中文
- word修改题注样式图x 为图x.x(wps可用
热门文章
- Python OpenCV设置摄像头分辨率
- 运维人员的职业升级道路
- Ubuntu 20.04 下安装 OpenCV 3.4.11 并测试使用
- 斑马打印机EPL2指令自动打印_配合扫描枪边扫边打
- git 安装配置(windows环境)
- 【CocosCreator 3.x】使用 RenderTexture 实现 3D 渲染在 UI 上 => 攻略
- 微信小程序踩坑日记-微信小程序首次加载样式错乱问题
- python数据结构教程_GitHub - Frank-Jing/python_data_structures_and_algorithms: Python 中文数据结构和算法教程...
- 谈谈为什么需要服务治理(Dubbo)
- javascript控制台输出