搜索
查看: 1402|回复: 4
打印 上一主题 下一主题

【求助】求出1000以内所有的质数?

[复制链接]
跳转到指定楼层
楼主
发表于 2016-11-9 10:15:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
本帖最后由 leilei0412 于 2016-11-10 08:35 编辑

求1000以内所有的质数   
    int a,f,i;
    f=0;
    printf("2  ");
    a=3;
    while( a<=1000)
    {
          for(i=2;i<=a-1;i++)
         {
                if(a%i==0)
                f=1;
         }
         if(f==0)
         printf("%d ",a);
        a=a+1;
    }
这样结果只有2  3  ,请高手帮忙解决


最佳答案

查看完整内容

[mw_shl_code=c,true]#include #include int main() { int f=0; int a,i; for(a=1;a
沙发
发表于 2016-11-9 10:16:00 | 只看该作者
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
int main()
{
        int f=0;
    int a,i;
        for(a=1;a<=1000;a++)
        {
                f=1;
                for(i=2;i*i<=a;i++)
                {
                        if(a%i==0)
                        f=0;
                }
                if(f)
                        printf("%d ",a);
    }
    system("pause");
    return 0;
}
[/mw_shl_code]
这样会好一些吧
板凳
 楼主| 发表于 2016-11-9 11:06:32 | 只看该作者
本帖最后由 leilei0412 于 2016-11-10 08:38 编辑

已解决,f=0应该放在while循环的里面

    int a,f,i;
    printf("2  ");
    a=3;
    while( a<=1000)
    {
         f=0;
         for(i=2;i<=a-1;i++)
         {
                if(a%i==0)
                f=1;
         }
         if(f==0)
         printf("%d ",a);
        a=a+1;
    }

在网上还看到了这种方法:用到了第5节的continue,分享下
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int i;
        printf("2 ");
    for (i = 2; i <= 1000; i++)
        {
                if (i % 2== 0) continue;
                else printf("%d ", i);
        }
        system("pause");
        return 0;
}
地板
 楼主| 发表于 2016-11-10 08:41:00 | 只看该作者
我叫贺泽邦 发表于 2016-11-9 10:16
[mw_shl_code=c,true]#include
#include
int main()

求出的结果是正确的,但不是按照楼主的思路找出错误的
本人水平比较菜,过程中if(f)也不懂什么意思
不过就你一个回答的,还是设为最佳答案了
5#
发表于 2016-11-20 21:27:41 | 只看该作者
leilei0412 发表于 2016-11-10 08:41
求出的结果是正确的,但不是按照楼主的思路找出错误的
本人水平比较菜,过程中if(f)也不懂什么意思
...

诶==同学有好好看书嘛?f为0时表达式为假,不为0时表达式为真。
他这里就是每个循环初都给f赋值1,中间进行判断,当f为1时这个数就是质数,此时if(f)这个语句成立,就输出质数啊====
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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