| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 746 人关注过本帖
标题:判断素数时始终无法排除1或者2?
只看楼主 加入收藏
jiawan007
Rank: 1
等 级:新手上路
帖 子:45
专家分:2
注 册:2009-8-1
结帖率:90.91%
收藏
已结贴  问题点数:10 回复次数:4 
判断素数时始终无法排除1或者2?
我写的程序如下:
#include<stdio.h>
#include<math.h>
int main(void)
{
    int n,i;
    double k;
    printf("Enter正整数n:");
    scanf("%d",&n);
    k=sqrt(n);
    for(i=2;i<=k;i++)
        if(n%i==0) break;
    if(i>k)
        printf("%d是素数\n",n);
    else printf("%d不是素数\n",n);
    return 0;
}
这个程序无法排除1,运行时输入1,结果为:1是素数。我把语句修改为k=sqrt(n+1);可以排除1了,但是却无法排除2,结果为:2不是素数。请问我如何修改?
搜索更多相关主题的帖子: 判断 排除 
2010-01-16 14:45
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:1 
输入后对数据先行进行判断,排除是 1 或者 2 .
2010-01-16 15:10
jiawan007
Rank: 1
等 级:新手上路
帖 子:45
专家分:2
注 册:2009-8-1
收藏
得分:0 
回复 2楼 广陵绝唱
我试着用if语句先排除1,可是程序修改后就只能判断1了。
请问一下具体应该怎么修改?
2010-01-16 15:24
树上月
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:114
专家分:154
注 册:2010-1-6
收藏
得分:7 
#include<stdio.h>
#include<math.h>
int main(void)
{
    int n,i;
    double k;
    printf("Enter正整数n:");
    scanf("%d",&n);
    if(n==1)
        printf("1不是素数\n");
    else{
        k=sqrt(n);
        for(i=2;i<=k;i++)
            if(n%i==0) break;
            if(i>k)
                printf("%d是素数\n",n);
            else
                printf("%d不是素数\n",n);
    }
    return 0;
}

每一个不曾起舞的日子,都是对未来的一种辜负......
2010-01-16 16:20
新鲜之选
Rank: 1
等 级:新手上路
帖 子:7
专家分:4
注 册:2010-1-8
收藏
得分:2 
你写的每问题啊,我运行了,可以的
2010-01-16 22:57
快速回复:判断素数时始终无法排除1或者2?
数据加载中...
 
   



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

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