| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 800 人关注过本帖
标题:如何判断一个数是否为素数
只看楼主 加入收藏
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
结帖率:76.92%
收藏
已结贴  问题点数:20 回复次数:17 
如何判断一个数是否为素数
#include<stdio.h>
#include<stdlib.h>
int num(int n)
{
    int i;
    if(n<2)
    {
        return 1;
    }
    else
    {
        for(i=2; i<=n; i++)
        {

            if (n%i==0)
            {
                return 0;
            }
            else
                return 1;
        }
    }
}
int main()
{
    int n;
    printf("请输入一个数:");
    scanf("%d",&n);
    if (num(n)==0)
        printf("%d是素数\n",n);
    else
        printf("%d不是素数\n",n);
    return 0;
}
各位大神看看是哪里有问题
为什么输入59 输出的是不是素数但是59 是素数

[此贴子已经被作者于2015-11-18 19:14编辑过]

2015-11-18 18:57
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
一步一步查查
2015-11-18 20:44
蓝色风暴cl
Rank: 8Rank: 8
来 自:新疆
等 级:蝙蝠侠
威 望:3
帖 子:163
专家分:704
注 册:2015-9-6
收藏
得分:0 

欢迎大家加好友哦,多找我聊聊吧!
2015-11-18 20:47
蓝色风暴cl
Rank: 8Rank: 8
来 自:新疆
等 级:蝙蝠侠
威 望:3
帖 子:163
专家分:704
注 册:2015-9-6
收藏
得分:2 
  if (n%i==0)
            {
                return 0;
            }

!!else
                return 1;

这步看看。

欢迎大家加好友哦,多找我聊聊吧!
2015-11-18 20:49
tredy6t
Rank: 2
等 级:论坛游民
帖 子:41
专家分:59
注 册:2015-8-6
收藏
得分:1 
int main()
{
    int n;
    printf("请输入一个数:");
    scanf("%d",&n);
    if (num(n)==0)
        printf("%d不是素数\n",n);//这里交换一下
    else
        printf("%d是素数\n",n);
    return 0;
}

//建议定义个变量代替返回值,int num()需要返回值
2015-11-18 21:38
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
收藏
得分:0 
回复 2楼 tlliqi
2015-11-18 21:38
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
收藏
得分:0 
回复 5楼 tredy6t
错的更严重
2015-11-18 21:40
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
收藏
得分:0 
回复 4楼 蓝色风暴cl
错哪了
2015-11-18 21:52
工超
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2015-10-27
收藏
得分:5 
#include<stdio.h>
#include<stdlib.h>
int num(int n)
{
    int i;
    if(n<2)
    {
        return 1;
    }
    else
    {
        for(i=2; i<n; i++)   //规定到n-1,因为n%n为零
        {

            if (n%i==0)
            {
                return 0;
            }
            else
                return 1;
        }
    }
}
int main()
{
    int n;
    printf("请输入一个数:");
    scanf("%d",&n);
    if (num(n)==0)
        printf("%d不是素数\n",n);  //此时如果==0,则不是素数
    else
        printf("%d是素数\n",n);   //如果!=0,则为素数
    return 0;
}

[此贴子已经被作者于2015-11-19 10:45编辑过]

2015-11-19 09:33
未来大仙
Rank: 6Rank: 6
来 自:黑窟窿
等 级:侠之大者
威 望:4
帖 子:263
专家分:491
注 册:2015-6-20
收藏
得分:0 
回复 楼主 brokenheart
数学要好啊楼主

好好学习,天天向上!
2015-11-19 10:32
快速回复:如何判断一个数是否为素数
数据加载中...
 
   



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

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