题解:学而思编程 质数
2026/5/5 18:58:56 网站建设 项目流程

本文分享的必刷题目是从蓝桥云课洛谷AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。

欢迎大家订阅我的专栏:算法题解:C++与Python实现!

附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总


【题目来源】

质数

【题目描述】

质数是指在大于1 11的自然数中,除了1 11和它本身以外不再有其他因数的自然数。现在给定你两个整数a , b a,ba,b,请你找出a ∼ b a\sim bab之间(不包含a , b a,ba,b)所有个位为1 11的质数。

【输入】

一行两个整数a , b a,ba,b

【输出】

从小到大输出所有满足条件的质数,质数之间单个空格隔开,如果没有符合条件的质数输出− 1 -11

【输入样例】

1 97

【输出样例】

11 31 41 61 71

【算法标签】

#质数#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;inta,b;// 输入的区间边界[a, b]boolflag;// 标记是否找到了符合条件的素数// 判断一个数是否为素数boolisp(intn){if(n<2)// 小于2的数不是素数{returnfalse;}// 检查从2到√n的所有数for(inti=2;i*i<=n;i++){if(n%i==0)// 如果能被整除,不是素数{returnfalse;}}returntrue;// 是素数}intmain(){cin>>a>>b;// 输入区间边界// 调整a为10的倍数(向上取整到最近的10的倍数)if(a%10!=0){a=(a/10+1)*10;}// 在区间(a, b)内查找以1结尾的素数for(inti=a+1;i<b;i+=10){if(isp(i))// 如果是素数{cout<<i<<" ";// 输出这个素数flag=1;// 标记找到了素数}}// 如果没有找到符合条件的素数if(flag==0){cout<<"-1";// 输出-1}return0;// 程序正常结束}

【运行结果】

1 97 11 31 41 61 71

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询