| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1273 人关注过本帖
标题:输出2到500之间的素数,不知道错在哪里呀~
只看楼主 加入收藏
二十六度
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-7
结帖率:0
收藏
已结贴  问题点数:5 回复次数:17 
输出2到500之间的素数,不知道错在哪里呀~
#include<stdio.h>
void main()
{
    int i,a=0,n,flag;
    for(n=2;n<=500;n++)
    {for(i=2,flag=1;i<=n;i++)
   
        if(n%i==0)
            flag=0;
        if(flag==1)
       {
           printf("%5d",n);
           a++;
           if(a%10==0)
               printf("\n");}

      
    }

}
2013-04-07 16:53
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:1 
去学习一下怎么问问题

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-07 17:06
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:1 
n % n = ?


[fly]存在即是合理[/fly]
2013-04-07 17:10
巩云峰
Rank: 1
来 自:大连海事大学
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-4-7
收藏
得分:1 
#include<stdio.h>
int main()
 {
     int i,a=0,n,flag;
     for(n=2;n<=500;n++)
     {for(i=2,flag=1;i<n;i++)
     
        {
        if(n%i==0)
             flag=0;
        }
        if(flag==1)
        {
        printf("%d   ",n);
        a++;
        if(a%10==0)
        printf("\n");   
        }

    }
}
2013-04-07 17:20
巩云峰
Rank: 1
来 自:大连海事大学
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-4-7
收藏
得分:0 
你的算法有问题,素数是只能被1和它本身整除的数,所以找它的因子应该不包括1和它本身,你的程序第六行,将i<=n改成i<n就可以了,如果不改,所有的flag都等于0。
2013-04-07 17:25
巩云峰
Rank: 1
来 自:大连海事大学
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-4-7
收藏
得分:0 
回复 3楼 azzbcc
一眼道破啊,厉害
2013-04-07 17:26
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:1 
if(n%i==0)flag=0;这样是不行的,因为现在已经判断出不是素数了,所以要跳出i的循环,你没有跳出,所以i会循环下去,加上break就可以满足了

Maybe
2013-04-07 17:27
二十六度
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-7
收藏
得分:0 
回复 5楼 巩云峰
奥,谢谢啊,好厉害呀、
2013-04-07 17:28
二十六度
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-7
收藏
得分:0 
回复 3楼 azzbcc
好厉害~
2013-04-07 17:29
二十六度
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-7
收藏
得分:0 
回复 3楼 azzbcc
那如果一个数组里的数都一样,还需要反复输入么。有更简单的方法么?
如:int year[6]={365,365,365,365,365,365}
2013-04-07 17:33
快速回复:输出2到500之间的素数,不知道错在哪里呀~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051815 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved