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就一定是素数。

  • 相关阅读:
    敏捷不是XP(口水文)
    利用异或的特性解决,找出重复数的问题,应该是目前最优算法。
    开源和免费那些事儿(二)
    开源和免费那些事儿
    LINQ本质 外篇 JOIN补遗
    在北京求.NET开发职位,人已经到达北京
    软件是邪恶的
    最近遇到的两个面试题兼卖身广告
    谈谈信仰和银弹。
    继续高阶函数好玩有用的扩展(网吧行文)
  • 原文地址:https://www.cnblogs.com/hechuxunni/p/5168711.html
Copyright © 2011-2022 走看看