码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-01-29 15:35:56      阅读:142      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!