当前位置:   article > 正文

PAT乙级1013 数素数 c语言

PAT乙级1013 数素数 c语言

令 Pi​ 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 PM​ 到 PN​ 的所有素数。

输入格式:

输入在一行中给出 M 和 N,其间以空格分隔。

输出格式:

输出从 PM​ 到 PN​ 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。

输入样例:

5 27

输出样例:

  1. 11 13 17 19 23 29 31 37 41 43
  2. 47 53 59 61 67 71 73 79 83 89
  3. 97 101 103

 

  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5. int m,n,flag=0,num=1,outnum=0;scanf("%d %d",&m,&n);
  6. if (m==1) //把第一个素数2单独弄出来 省时间
  7. {
  8. outnum++;
  9. printf("2");
  10. if (m!=n) //最后1个测试点只输出2
  11. printf(" ");
  12. }
  13. for (int i=3;num<n;i+=2) //num为找到的第几个素数 小于n是一直循环
  14. {
  15. flag=0; //判断是否为素数标志
  16. for (int j=3;j<=sqrt(i);j+=2) //没有sqrt会超时 有一个测试点n==10000
  17. {
  18. if (i%j==0)
  19. {
  20. flag=1;
  21. break;
  22. }
  23. }
  24. if (!flag)
  25. {
  26. num++; //素数个数加1
  27. if (num>=m) //从m个素数开始输出
  28. {
  29. if(++outnum%10==0 || num==n) //输出个数为10的倍数和最后一个没有空格
  30. printf("%d\n",i);
  31. else
  32. printf("%d ",i);
  33. }
  34. }
  35. }
  36. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/598492
推荐阅读
相关标签
  

闽ICP备14008679号