鱼C论坛

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

菜鸟问题,思考了很久,得不出答案。希望高人赐教。

[复制链接]
发表于 2011-5-11 16:27:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 xurui71 于 2011-5-11 21:28 编辑

/*****输出100到200之间,只能被1和本身整除的数****/
#include <stdio.h>
void main()
{
        int m,t,i;       
       
        for(m=100,i=0;m<201;m++)//!!!!!!
        {for(t=2,m;t<m;t++)
        {if(m%t==0)  //m被2或小于自己的数整除,就说明这个数不是,并跳出循环。
       
        {printf("%d不是素数\n",m);break;}
        else i++;//如果m被2或小于自己的数除,余数不为0,i就加1
       
        if(i==(m-2))//如果m不能被i个数整除,i恰好等于m-2,说明此时的m是这样的一个数
                printf("%d是只能被1和本身整除的数\n",m);}
        }
       
}

                               
登录/注册后可看大图
这是运行后的图片,不晓得怎么了,当m=107,109还有其他的几个数时,没有了输出。。不晓得什么问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-11 18:25:25 | 显示全部楼层
#include <stdio.h>
#include <math.h>

void main()
{
    int m,t,i;        
   
    for(m=100;m<201;m++)
    {
        for(t=2,i=0;t<sqrt(m);t++)
        {
            if(m%t==0)  //m被2或小于自己的数整除,就说明这个数不是,并跳出循环。               
            {
                i=1;
                break;
            }
            
        }
        (i==0)?printf("%d是只能被1和本身整除的数\n",m):printf("%d不是素数\n",m);
    }
}

每计算完一个数,拿i来做判断,i初始为0,如果i被赋值为1,就不是素数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-11 21:30:55 | 显示全部楼层
回复 winddyj 的帖子

谢谢。问题找到了,打感叹号那里。。i循环完一次,没有负初值零,所以以后的素数i不等于m见2,就没有显示了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-19 22:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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