- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
质数中的质数
给定整数 N(2N8),生成所有其前任意位都是质数的N 位质数。7331 即是一个这样的 4 位质数,因为 7、73 和 733 也均为质数。在标准输出上按升序输出所有符合要求的质数。例如,对于 2,输出下列 9 个数:
23 29 31 37 53 59 71 73 79
问题分析:首先此问题归结到底还是求素数的问题。求素数的问题是最基本的程序之一。而此问题需要解决的是如何求一个数的前面的那些位数是否是素数的问题。
我们可以按整除运算,再利用循环解决此问题。
1、 输入所需要进行运算的位数num
2、 调用函数fun(),此函数命名按标识符命名规则命名
3、 fun()函数将解决此问题。
fun()函数的思想是利用循环,从 2*10^num+1 开始,到 10^(num+1)结束。
取这个循环中这个数的首位,进行判断,是否为4、6、8,如果是则加上 10^num, 再进行后面的循环。因为,4、6、8 不是素数,所以排除以这些数为首位的数。循环变量每次加 2,因为素数除 2 外都是奇数。
4、 调用 yprime(i,num),判断数i 是否为所求的数。
判断原数是否为素数,再依次去掉后面的数,看是否为素数。最后如果全部满足,则返回 1,否则返回 0;
5、 判断素数,调用函数prime(n)。
程 序 如 下 : #include stdio.h #include stdlib.h #include math.h
void fun(int num);
int yprime(int n,int num);
int prime(int n);//n 是否是素数
int main()
{
int num=0;
printf(请输入位数:); scanf(%d,num); fun(num);
return 0;
}
//从后面往前面数,每位是否是素数
//如 7331,733,73,7 都是素数
//输出位数num 以内的所有满足这一条件的数void fun(int num)
{
int i,t,n=1;
for(i=1; inum; i++) n*=10;
for (i=2*n+1; in*10; i+=2)//首位为 1 的数也不满足条件
{
t=i/n;
if(t==4 ||t==6 || t==8)//首位为 4、6、8 的数不满足条件
i+=n;
if(yprime(i,num))//输出满足条件的数printf(%d\t,i);
}
}
//满足条件,则返回 1,不满足条件,返回 0 int yprime(int n,int num)
{
int i;
for(i=0; inum; i++)
{
if(!prime(n))
return 0; n/=10;
}
return 1;
}
int prime(int n)//n 是否是素数
{
int a=sqrt(n),i; for(i=2; i=a; i++)
if(n%i==0) return 0;
return 1;
}
在 Microsoft Windows XP SP3(1.20GHz,988MB)上运行 Code::Blocks 10.05,得运行结果如下:
请输入位数:2
23 29 31 37 53 59 71 73 79
Process returned 0 (0x0) execution time : 0.266 s Press any key to continue.
请输入位数:3
233
239
293
311
313
317
373
379
593
599
719
733
739
797
Process returned 0 (0x0) execution time : 0.219 s Press any key to continue.
请输入位数:4
2333
2339
2393
2399
2939
3119
3137
3733
3739
3793
3797
5939
7193
7331
7333
7393
Process returned 0 (0x0) execution time : 0.219 s Press any key to continue.
请输入位数:5
23333 23339 23399 23993 29399 31193 31379 37337 37339 37397
59393 59399 71933 73331 73939
Process returned 0 (0x0) execution time : 0.719 s Press any key to continue.
请输入位数:6
233993
239933
293999
373379
373393
593933
593993
719333
您可能关注的文档
- 四年级体育课教学设计及反思.docx
- 四年级同步练习四(期末).docx
- 四年级下册第六单元单元导读课教学设计.docx
- 四年级下册第一、二单元测试题.docx
- 四年级下册教学计划.docx
- 四年级下册描写乡村景色作文4篇.docx
- 四年级下册期末试卷及答案.docx
- 四年级下册数学行程问题思维训练试题1.docx
- 四年级下册思维导图.docx
- 四年级下册图形的旋转习题.docx
- 广东省东莞市2024-2025学年八年级上学期生物期中试题(解析版).pdf
- 非遗剪纸文创产品开发经理岗位招聘考试试卷及答案.doc
- 广东省东莞市2024-2025学年高二上学期期末教学质量检查数学试题.pdf
- 体育安全理论课件图片素材.ppt
- 3.1 公民基本权利 课件-2025-2026学年道德与法治八年级下册 统编版 .pptx
- 广东省潮州市湘桥区城南实验中学等校2024-2025学年八年级上学期期中地理试题(解析版).pdf
- 大数据运维工程师岗位招聘考试试卷及答案.doc
- 广东省深圳市福田区八校2026届数学八年级第一学期期末教学质量检测模拟试题含解析.doc
- 广东省潮州市湘桥区城基初级中学2024-2025学年八年级上学期11月期中考试数学试题(解析版).pdf
- 广东省潮州市湘桥区城西中学2024-2025学年八年级上学期期中地理试题(解析版).pdf
最近下载
- Q-JJJ 9002-2025铁路建设项目安全穿透式管理实施指南(OCR).pdf VIP
- 项目开发总结报告 项目开发总结报告.doc VIP
- (护理学(护理科研方向))护理科研方法试题及答案.doc VIP
- 2026年教育系统校级后备干部选拔考试题及答案.docx VIP
- 2023年北师大版六年级数学下册全单元测试题【及参考答案】.docx VIP
- GT-Power建模流程与校准技巧-湖南大学.ppt VIP
- 项目成本管理研究开题报告.docx VIP
- 2025 年大学生物医学工程(生物医学基础)试题及答案.doc VIP
- 第十届地球小博士高中组试题及答案.docx VIP
- 六上第二单元形状与结构 复习题 选择题和判断题 6.6练习.docx VIP
原创力文档


文档评论(0)