当前位置:   article > 正文

找出前1000个素数_编程找出前1000个素数存放到数组中,然后输入一个整数n,输出第n个素数的值。 输入

编程找出前1000个素数存放到数组中,然后输入一个整数n,输出第n个素数的值。 输入

  1. #include<stdio.h>
  2. #include<math.h>
  3. //素数的定义是除了1和他本身以外找不到被他能整除的数,传统的方法去寻找素数是从2开始遍历到n-1,如果到n-1都找不能被整数的数,就说明他是素数
  4. //但是如果判断到1000个素数时,或者100000,时间就很慢,超时,所以以下方法是改进和提高
  5. //比如说(根号10==3,我们只需要从2开始判断到3,是否能被10整数,如果能则说明他不是素数,否则就是。
  6. //当判断10000的时候,(根号10000==100,只需要从2遍历判断到100,就可以。
  7. int main(){
  8. int a[1000],i,j,t,gs=0,n,ret;
  9. for(i=2;gs<=1000;i++)//gs是找到的第几个素数,
  10. {
  11. t=sqrt(i);
  12. for(j=2;j<=t;j++)
  13. if(i%j==0)
  14. break;
  15. if(j==t+1)//如果j判断到t,还找不到能被整除的,j++,这样,如果是素数,则j==t+1
  16. a[gs++]=i;
  17. }
  18. do{
  19. ret=scanf("%d",&n);//如果有输入,则scanf函数返回1
  20. if(ret==1)
  21. printf("%d\n",a[n-1]);
  22. else
  23. break;
  24. }while(1);
  25. return 0;
  26. }

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

闽ICP备14008679号