首页 > 其他 > 详细

打印从1到k之间的所有素数

时间:2016-01-29 15:34:37      阅读:183      评论:0      收藏:0      [点我收藏+]

                                                          

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

程序源代码:

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

 main()

{

   int m,n,i,j,k;

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

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

   scanf("%d",&n); 

   while(n--)

   { 

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

     scanf("%d",&k);

     printf("1%d之间的素数为:\n\n",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("\n\n");

    system("pause");

    system("CLS");

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

   }  

}

 

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

打印从1到k之间的所有素数

原文:http://www.cnblogs.com/hechuxunni/p/5168711.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!