>n; for(j=2;j<=n;j++) { int sq=sqrt(j); for(i=2;i<=sq;i++) if(j%i==0) bre_实现输入一个n输出n以内的素数">
当前位置:   article > 正文

求素数,给你一个n,输出n以内的素数_实现输入一个n输出n以内的素数

实现输入一个n输出n以内的素数
  1. #include<iostream>
  2. #include<cmath>
  3. using namespace std;
  4. void main()
  5. {
  6. int i,j,n;
  7. bool is_primer;
  8. cout<<"please enter n\n";
  9. cin>>n;
  10. for(j=2;j<=n;j++)
  11. {
  12. int sq=sqrt(j);
  13. for(i=2;i<=sq;i++)
  14. if(j%i==0)
  15. break;
  16. if(i==sq+1)
  17. cout<<j<<'\t';
  18. }
  19. }

一开始直接遍历除了本身和1以外的数,但是这样会有大量的浪费,考虑到一个数不能被其开方和小于开方的数整除即是素数。也就是说这样子就只要遍历到其开方就好了。下面给出参考答案,答案显然更合理

  1. #include<stdio.h>
  2. int isprime(int);
  3. int main(void)
  4. {
  5. int num,i;
  6. printf("input a positive number:");
  7. scanf("%d",&num);
  8. printf("all the primes <= %d:\n",num);
  9. for(i=2;i<=num;i++)
  10. if( isprime(i) )
  11. printf("%d\t",i);
  12. printf("\n");
  13. return(0);
  14. }
  15. int isprime(int n) //如果n是素数 返回1,反之 返回0
  16. {
  17. int div;
  18. for(div = 2; div * div <= n; div++)
  19. if (n % div == 0)
  20. return 0;
  21. return 1;
  22. }


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

闽ICP备14008679号