首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于数是否是素数的小疑问(初学者提问)

2012-03-03 
关于求一个数是否是素数的小疑问(菜鸟提问)关于求一个数是否是素数的小疑问,呵呵, 原程序如下:#include m

关于求一个数是否是素数的小疑问(菜鸟提问)
关于求一个数是否是素数的小疑问,   呵呵, 原程序如下:

#include "math.h "

void   main()

{int   m,i,k;
   
      scanf( "%d ",&m);

      k=sqrt(m);

      for(i=2;i <=k;i++)          已上前面几句我都明白.只是下面这句不太懂
 
        if(m%i==0)   break;           这是用输入的数m除于i   ,   如果余数是0,那就是              真,是真就执行break语句.那就是可以整除了.那             么,可以整除就应该不是素数了, 那么下面为什么
                                                    又还要判断下面一句 i> k   呢?

if   (i> k)printf( "%d是素数 ",m)
 
    else   printf( "%d是合数 ",m);
}

[解决办法]
如果i> k,说明没有一个i满足m%i==0,则说明它没有一个数可以整除(不算1),那么它是素数,
如果i <k,说明肯定执行了这句if(m%i==0),break,说明它有因子
感觉你首先应该明白什么是素数,怎么判断一个素数,用什么方法你再看下程序吧,或者写个算法,画个流程图等等
[解决办法]
下面的判断就是要看是break出来的还是循环完结束的

热点排行