| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 479 人关注过本帖
标题:素数问题,不知这是哪儿错了!坐等援助!!
只看楼主 加入收藏
湖山觐
Rank: 1
等 级:新手上路
帖 子:13
专家分:5
注 册:2010-6-14
收藏
 问题点数:0 回复次数:4 
素数问题,不知这是哪儿错了!坐等援助!!
#include <stdio.h>
#include <math.h>
void main()
{
    int n,i,t=0;
    for(n=201;n<400;n+=2)
        for(i=2;i<(int)sqrt(n);i++)
        {
            if(n%i==0)break;
            else
                printf("%d ",n);
            t++;
        }
        printf("200之400间共有%d个素数。\n",t);
}

答案 200之400间共有371个素数。!不知算法上哪儿有缺陷,求助大师——————,坐等!
搜索更多相关主题的帖子: 素数 坐等 援助 
2010-11-03 17:50
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:0 
#include <stdio.h>
#include <math.h>
int main()
{
    int n,i,t=0;
    for(n=201; n<400; n+=2)
    {
        for(i=2; i<=sqrt(n); i++)
            if(n%i==0)
                break;
        if(i>sqrt(n))
        {
            printf("%d ",n);
            t++;
        }
    }
    printf("\n200之400间共有%d个素数。\n",t);
    return 0;
}

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2010-11-03 18:21
qb3276
Rank: 2
等 级:论坛游民
帖 子:24
专家分:42
注 册:2010-10-25
收藏
得分:0 
改这样试试 要有个if来控制输出的:

#include <stdio.h>
#include <math.h>

int main(void)
{
    int n, i, k, t=0;
    for(n=201; n<400; n+=2)
    {
        k = sqrt(n);
        for(i=2; i<=sqrt(n); i++)
        {
            if(n%i==0)
            {
                break;
            }
        }
            
        if (i >= k+1)  
        {
            printf("%d ",n);
            t++;
        }
      
    }

    printf("200之400间共有%d个素数。\n",t);
}
2010-11-03 18:24
qb3276
Rank: 2
等 级:论坛游民
帖 子:24
专家分:42
注 册:2010-10-25
收藏
得分:0 
当i >= k+1(即:(int)sqrt(n)+1)时才能判定是不是素数
2010-11-03 18:29
skean
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-11-3
收藏
得分:0 
#include <stdio.h>
#include <math.h>
void main()
{
    int n,i,t=0;
    for(n=201;n<400;n+=2)
    {
        for(i=2;i<(int)sqrt(n);i++)
        {
            if(n%i==0)
                break;
        }
        if(i>(int)sqrt(n))
        {
            printf("%d ",n);
            t++;
        }
    }
    printf("200之400间共有%d个素数。\n",t);
}


[ 本帖最后由 skean 于 2010-11-4 02:19 编辑 ]
2010-11-04 02:17
快速回复:素数问题,不知这是哪儿错了!坐等援助!!
数据加载中...
 
   



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

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