当前位置:   article > 正文

C语言:判断一个数是否为素数(3种方法,含注释)_c语言判断素数

c语言判断素数

首先要先明白素数的定义:除了1和本身之外,没有其他的因数的数,即不能被其他数整除。

同时要注意,1不是素数。

以下为判断素数的3个代码:

1.要注意给m赋初值是不能为1,因为1是任何数的因数,可以被任何数整除。若初值为1,则第一步就结束循环,所有的数输出结果均为不是素数(1除外),无法起到判断作用。

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int i, m;
  5. printf("请输入一个大于一的整数:");
  6. scanf("%d", &i);
  7. for (m = 2; m <= i; m++)
  8. if (i % m == 0)//当2-m之间遇到因数时,结束循环
  9. break;
  10. if (m == i)//如果遇到的因数就是它本身,是素数
  11. printf("%d是素数", i);
  12. else
  13. printf("%d不是素数", i);
  14. return 0;
  15. }

2.此代码中,count的作用是计算这个数的因数个数,如果是2,即只有1和本身,是素数。

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int i, m;
  5. int count = 0;
  6. printf("请输入一个大于1的整数:\n");
  7. scanf("%d", &i);
  8. for (m = 1; m <= i; m++)
  9. {
  10. if (i % m == 0)//统计要判断的数的因数个数
  11. count++;
  12. }
  13. if (count == 2)//如果只有2个因数
  14. printf("%d是素数", i);
  15. else
  16. printf("%d不是素数", i);
  17. return 0;
  18. }

3.此代码中引用了求平方根sqrt函数,所以要引用math.h;对半取,可以节省空间。

  1. #include<stdio.h>
  2. #include<math.h>//求平方根需要引用
  3. int main()
  4. {
  5. int n, m, i;//定义需要用到的变量
  6. printf("请输入一个大于1的正整数:");
  7. scanf("%d", &n);//输入要判断的数
  8. m = sqrt(n);//求输入数的平方根
  9. for (i = 2; i <= m; i++)//取2-m之间的每一个整数
  10. if (n % i == 0)//判断能否整除n
  11. break;//非素数,跳出循环
  12. if (i > m)
  13. printf("%d是素数!\n", n);//循环正常结束,是素数
  14. else
  15. printf("%d不是素数!\n", n);//循环中途退出,不是素数
  16. return 0;
  17. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/593461
推荐阅读
相关标签
  

闽ICP备14008679号