当前位置:   article > 正文

C语言-求输入整数n,所有小于等于n的素数_编写一个c程序输入一个数n输出所有小于等于n的素数

编写一个c程序输入一个数n输出所有小于等于n的素数

原地址:https://www.ctvol.com/c-cdevelopment/2261.html

我们先了解什么是素数:

素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。

问题:

从键盘上输入一个整数n,输出所有小于等于n的素数。所谓素数是指:除了1和它背身以外不能被其他整数整除的数;

例如:

输入:50

输出:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

代码:

  1. // shuchusushu.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"
  4. #include <iostream>
  5. using namespace std;
  6. int prime(int x){
  7. for(int i= 2;i< x ; i++){
  8. if(x%i == 0)
  9. return 0;
  10. }
  11. return 1;
  12. }
  13. int _tmain(int argc, _TCHAR* argv[])
  14. {
  15. int m,k=0;
  16. int arr[2000]={0};
  17. printf("输入50到2000之间的整数: ");
  18. cfu:
  19. scanf("%d",&m);
  20. if (m >= 50 && m <= 2000)
  21. {
  22. //判断在m以内有素数
  23. for (int i =2;i < m; i++)
  24. {
  25. if (prime(i)==1){
  26. printf("%d 是素数\n",i);
  27. arr[k++]= i;
  28. }else{
  29. printf("%d 不是素数\n",i);
  30. }
  31. }
  32. }else{
  33. printf("输入50到2000之间的整数");
  34. goto cfu;
  35. }
  36. cout << "K的值: "<< k << endl;
  37. for (int i = 0;i < k-1;i++)
  38. {
  39. for (int j = 0;j < k-1-i;j++)
  40. {
  41. if (arr[j] < arr[j+1] )
  42. {
  43. int temps = arr[j];
  44. arr[j] = arr[j+1];
  45. arr[j+1] = temps;
  46. }
  47. }
  48. }
  49. printf("10个数排序:");
  50. for (int i = 0;i< k; i++)
  51. {
  52. printf("%d ",arr[i]);
  53. }
  54. while(1);
  55. return 0;
  56. }

代码:如果需要区间的则在判断if (m >= 50 && m <= 2000)处增加区间即可。

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

闽ICP备14008679号