搜索
查看: 849|回复: 7
打印 上一主题 下一主题

这是显示2~12345中质数的个数的,为什么什么都不显示

[复制链接]
跳转到指定楼层
楼主
发表于 2014-7-11 18:23:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{        int a,b,i;
        i=0;
    a=2;
    while(a<=12345);
    {b=2;
    while(b<=a-1);
    {if(a%b==0)
    i=i+1;
    b=b+1;
    }
    a=a+1;
    }
    printf("%d",i);
       
        system("pause");
        return 0;
}


最佳答案

查看完整内容

#include #include #include int main() { int a,num,i; num=0; for(a=2;a
沙发
发表于 2014-7-11 18:23:42 | 只看该作者
本帖最后由 schein 于 2014-7-12 14:45 编辑

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
        int a,num,i;
        num=0;
    for(a=2;a<=12345;a++)
                {
                        for(i=2;i<=sqrt(a);i++)
                                if(a%i==0)
                  break;
                if(i>sqrt(a))
                  num=num+1;
        }
     printf("质数个数是%d\n",num);
        system("pause");
        return 0;
}
板凳
发表于 2014-7-11 19:17:20 来自手机 | 只看该作者
while后的分号去掉,在return前加一句sleep(50000);
地板
发表于 2014-7-11 21:47:15 | 只看该作者
[mw_shl_code=c,true]int main()
{
        int a, b, i;
        a = 2;
        i = 0;
        while (a<=12345)
        {
                b = 2;
                while (b<=a-1)
                {
                        if (a%b == 0)
                                i = i + 1;
                                b = b + 1;
                }
                a = a + 1;
        }
        printf("%d\n",i);
        system("pause");
        return 0;
}[/mw_shl_code]
测试可以的。
结果:93520

点评

可是12345个数字中怎么会有93520个质数呢?  发表于 2014-7-12 14:49
5#
发表于 2014-7-11 21:50:35 | 只看该作者
同二楼的,去掉while后的分号,不过新版的啊哈C可以不加sleep的说
6#
发表于 2014-7-12 13:31:00 | 只看该作者
本帖最后由 schein 于 2014-7-12 14:47 编辑

我觉得应该用for循环,不能用while写以下是代码,希望能帮到你。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
        int a,num,i;
        num=0;
    for(a=2;a<=12345;a++)
                {
                        for(i=2;i<=sqrt(a);i++)
                                if(a%i==0)
                  break;
                if(i>sqrt(a))
                  num=num+1;
        }
     printf("质数个数是%d\n",num);
        system("pause");
        return 0;
}



7#
 楼主| 发表于 2014-7-13 10:40:47 | 只看该作者
谢谢你的答案,对我很有帮助
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表