zoukankan      html  css  js  c++  java
  • 打印从1到k之间的所有素数

                                                              

          问题分析:素数是指大于1且只能被它本身和1整除的数,根据定义可以从2开始对一个数取余数一直到它本身,若它有第三个整除数,则可以判定它不是素数。若使用这种方法,会浪费时间,我们可以判断2到这个数的算术平方根之间有没有它的整除数。现在程序不仅是要判定素数,还要打印1到k之间的素数。

         程序源代码

          #include<stdio.h>

          #include<stdlib.h>

          #include<math.h>

          main()

        {

              int m,n,i,j,k;

              printf("    素数判定小程序 ");

              printf("请输入测试数据组数: ");

              scanf("%d",&n); 

             while(n--)

             { 

                printf("请输入截止数: ");

                scanf("%d",&k);

                printf("1%d之间的素数为: ",k);

                  for(j=2;j<=k;j++)

                { 

                      m=(int)sqrt(j);

                       for(i=2;i<=m;i++)

                       if(j%i==0)

                          break;

                       if(i>m)

                     printf("%d ",j);

     

                } 

               printf(" ");

               system("pause");

              system("CLS");

             printf("    素数判定小程序 ");

           }  

         }

     

    程序分析:程序中用了两个for循环,外循环的作用是确定要打印数的区间,内循环的作用是判定一个数是否是素数,然后打印。所以说内循环是关键,倘若j是素数,那么内循环中i的最终值一定是i+1,所以若i>m,那么j就一定是素数。

  • 相关阅读:
    软件工程实践总结作业
    SDN第4次上机作业
    SDN第四次作业
    SDN第三次上机作业
    SDN第三次作业
    SDN第二次上机作业
    SDN第一次上机作业
    免费自动生成字幕工具推荐,啃生肉啊(6.12更新)
    博客园美化,自定义你的博客,css+html (iframe)
    找质数、素数_算法优化(C++)
  • 原文地址:https://www.cnblogs.com/hechuxunni/p/5168711.html
Copyright © 2011-2022 走看看