当前位置:   article > 正文

学习笔记 判断素数_不能被比它小的数字(除了1以外)整除的数

不能被比它小的数字(除了1以外)整除的数

任务描述

素数,又称质数,是指在大于1的自然数中,除了1和它本身以外不能被其它数整除的数。最小的素数是2。 本关要求输入一个正整数,判断该正整数是否是素数。

素数由于其不能被等分的原因,有很多实际的应用,例如:

  • 汽车变速箱的齿轮的相邻的两个大小齿轮齿数一般设计为素数,以增加两齿轮内两个相同的齿相遇啮合次数的最小公倍数,可增强耐用度减少故障。
  • 在害虫的生物生长周期和杀虫剂使用之间的关系上,实验表明,素数次数地使用杀虫剂是最合理的,都是使用在害虫繁殖的高潮期,而且害虫很难产生抗药性。
  • 以素数形式无规律变化的导弹和鱼雷可以使敌人不易拦截。等等。

问题解析

本关需要用到循环控制结构来解决。如果输入的整数保存在变量k中,则需要尝试一些数能否被k整除,并根据结果判断k是否是素数。需要测试的数据可以是从2k-1,或者从2k/2,或者从2到开根号k

编程要求

根据提示,在右侧编辑器补充代码,要求实现判断一个正整数是否是素数的功能。具体要求如下:

对于输入的一个正整数,判断其是否是素数。如果输入的不是一个正整数,还要求输出“Input error!”并提示用户重新输入直到输入正确为止。

测试说明

 测试样例1:

测试样例2:

测试样例3:

代码实现

  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <iostream>
  5. using namespace std;
  6. int main()
  7. {
  8. int ret = 0, i;
  9. int number;
  10. printf("Input a number(>0):");
  11. scanf("%d", &number);
  12. while (number < 0)
  13. {
  14. printf("Input error! Please input a positive integer x(>0):");
  15. scanf("%d", &number);
  16. }
  17. for (i = 2; i < number; i++)
  18. {
  19. if (number % i == 0)
  20. {
  21. ret++;
  22. }
  23. }
  24. if (ret == 0)
  25. {
  26. printf("%d is a prime number", number);
  27. }
  28. else
  29. {
  30. printf("%d is not a prime number", number);
  31. }
  32. return 0;
  33. }

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

闽ICP备14008679号