| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 508 人关注过本帖
标题:判断素数程序的一个问题
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
已结贴  问题点数:9 回复次数:3 
判断素数程序的一个问题
代码如下:
#include   <stdio.h>
#include   <math.h>
int  main()
{
    int  ss(int );
    int  n;
    printf("Please input n:");
    scanf("%d", &n);
    if(ss(n))
    printf("n is a ss.\n");
    else
    printf("n is not a ss.\n");
    return  0;
}

int ss(int n)
{
    int i, flag = 1;
    for(i = 2; i <= sqrt(n) && flag == 1; i++)
   {
        if(n % i == 0)
        flag = 0;
        break;
    }
    return (flag);
}
为什么加了个break就出问题? 输入4 结果不是素数 输入9 结果是素数?
搜索更多相关主题的帖子: return include 
2011-12-14 10:11
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
收藏
得分:5 
你想想,输入9时,9%2!=0,也要跳出循环,而flag还是为1,不就是素数吗?输入4时,4%2==0,flag=0,不是素所以说数成立。
所以说你的代码本身有问题
简洁判别素数代码:
程序代码:
int ss(int n)
{
    int i;
    for(i = 2; i <= sqrt(n);i++)
        if(n % i == 0)
        return 0;
      return 1;
}

 
2011-12-14 10:41
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:5 
这样就可以了,差一个括号,还有,你的n=1和0时,返回的结果也是素数,在多加一句就行!
#include   <stdio.h>
#include   <math.h>
int  main()
{
    int  ss(int );
    int  n;
    printf("Please input n:");
    scanf("%d", &n);
    if(ss(n))
    printf("n is a ss.\n");
    else
    printf("n is not a ss.\n");
    return  0;
}

int ss(int n)
{
    int i, flag = 1;
    if(n==0) return 0;
    if(n==1) return 0;
    for(i = 2; i <= sqrt(n) && flag == 1; i++)
   {
        if(n % i == 0)
        {flag = 0;
        break;}
    }
    return (flag);
}

最基础的往往是你最容易忽略的!
2011-12-14 12:59
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 3楼 于祥
谢谢!

梅尚程荀
马谭杨奚







                                                       
2011-12-14 13:23
快速回复:判断素数程序的一个问题
数据加载中...
 
   



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

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