鱼C论坛

 找回密码
 立即注册
查看: 2127|回复: 2

求100~200的素数,为什么这样写不对??

[复制链接]
发表于 2014-2-16 14:26:42 | 显示全部楼层 |阅读模式
10鱼币
#include"stdio.h"
#include"math.h"
void main()
{
      int m=100,i,k;
      k=sqrt(m);
      do
     {
          for(i=2; i<=k; i++)
          if(m%i == 0)
         {break;}
            if(i>k)
           {
               printf("%d\t",m);
            }
      }while(m++ <= 200);
}
为什么以上程式,运行结果会比正确答案多了以下几个数字,求详解,盼复
121
143
169
187

最佳答案

查看完整内容

#include"stdio.h" #include"math.h" void main() { int m=100,i,k; k=sqrt(m); //你再这个地方就把k给固定成10了,而后来m++了,k还最大是10,所以121的11因数 没有被检测出来 do { for(i=2; ik) { printf("%d\t",m); } m++; //加这一句 k=sqrt(m); ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-16 14:26:43 | 显示全部楼层
本帖最后由 swsm 于 2014-2-16 15:19 编辑

#include"stdio.h"
#include"math.h"
void main()
{
      int m=100,i,k;
      k=sqrt(m);     //你再这个地方就把k给固定成10了,而后来m++了,k还最大是10,所以121的11因数 没有被检测出来

   
      do
     {
          for(i=2; i<=k; i++)
          if(m%i == 0)
         {break;}
            if(i>k)
           {
               printf("%d\t",m);
            }
        m++;                                              //加这一句
        k=sqrt(m);                                      //再加这一句
      }while(m <= 200);                             //再改这一句
}
//这样就可以了,再交流   

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-2-16 16:26:08 | 显示全部楼层
:handshake原来如此,感谢感谢,又可以继续了,YEAH!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 03:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表