| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 800 人关注过本帖
标题:如何判断一个数是否为素数
只看楼主 加入收藏
暴风晕
Rank: 12Rank: 12Rank: 12
来 自:冥界
等 级:火箭侠
威 望:6
帖 子:402
专家分:3107
注 册:2015-8-8
收藏
得分:1 
楼主要是画流程图应该就不会错了
2015-11-19 12:38
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
收藏
得分:0 
回复 11楼 暴风晕
但是我就是不会画流程图啊
2015-11-20 19:50
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
收藏
得分:0 
回复 10楼 未来大仙
我数学也不烂啊
2015-11-20 19:50
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
收藏
得分:0 
回复 9楼 工超
也有错,输入1,15都说是素数,但是 很明显这两个就不是素数
2015-11-20 19:53
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分: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++)
        {

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

我们都在路上。。。。。
2015-11-20 20:17
chenxd
Rank: 2
来 自:北京
等 级:论坛游民
帖 子:20
专家分:24
注 册:2015-5-19
收藏
得分:5 
错的原因是这一段for(i=2; i<=n; i++)
        {

            if (n%i==0)
            {
                return 0;
            }
            else
                return 1;
        }
这里的i不能等于n,因为等于n%n = 0;
UP主可以考虑一下用一个标记变量来表示。代码如下:
#include<stdio.h>
int isPrime(int n)
{
    int i;
    int flag = 1;    //flag为标记变量,flag = 1 表示这个数是素数 ; flag = 0,表示这个数不是素数
    if(n < 2)
        flag = 0;   
    else
    {
        for(i = 2; i < n; i++)
        {
            if(n%i == 0)
                flag = 0;    //判断n是否能被i整除,若是则flag= 0,即这个数不是素数
        }
    }
    return flag;
}
int main()
{
    int n;
    scanf("%d",&n);
    if(isPrime(n)==1)
        printf("%d是素数!\n",n);
    else
        printf("%d不是素数!\n",n);
    return 0;
}

不要嘲笑我家樱木!
2015-11-20 21:30
lgjhlcd
Rank: 2
等 级:论坛游民
帖 子:12
专家分:29
注 册:2011-11-14
收藏
得分:1 

          if (n%i==0)
            {
                return 0;
            这后面是不是该加一跳出本循环的语句,结束i的自加,
比如n=4时,i为2返回0,为3有返回1……
2015-11-20 23:41
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
收藏
得分:0 
回复 15楼 hellovfp
这下就可以了
2015-11-21 09:09
快速回复:如何判断一个数是否为素数
数据加载中...
 
   



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

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