素数中的素数.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档