当前位置:   article > 正文

判断一个数是否是素数IsPrime()_用isprime函数判断素数

用isprime函数判断素数

算法1

对整数n在[2,n-1],中做除法,如果出现能被整除的数,则n为合数,否则为素数。

  1. #include<stdio.h>
  2. int IsPrime(int n)
  3. {
  4. int i;
  5. for (i = 2;i < n;i++)
  6. {
  7. if (n % i == 0)
  8. break;
  9. }
  10. if (i < n)
  11. return 0;
  12. else
  13. return 1;
  14. }
  15. int main(void)
  16. {
  17. int n;
  18. printf("请输入一个大于3的整数:\n");
  19. scanf_s("%d", &n);
  20. if (IsPrime(n) == 1)
  21. printf("%d是素数\n", n);
  22. else
  23. printf("%d不是素数\n",n);
  24. return 0;
  25. }

算法2

只需判断[2,\sqrt{n}]即可,从而减少循环次数(解释:假设n=xy,则一种情况是x,y中必有一个数小于\sqrt{n},而另一个大于,不可能同时小于\sqrt{n}或者同时大于\sqrt{n},第二种情况是x=y=\sqrt{n}。)只需添加math库和修改部分IsPrinme代码

  1. #include<stdio.h>
  2. #include<math.h>
  3. int IsPrime(int n)
  4. {
  5. int i;
  6. for (i = 2;i <=sqrt(n);i++)
  7. {
  8. if (n % i == 0)
  9. break;
  10. }
  11. if (i<=sqrt(n))
  12. return 0;
  13. else
  14. return 1;
  15. }

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

闽ICP备14008679号