| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1513 人关注过本帖
标题:求教输入某个数是否为素数的问题?
只看楼主 加入收藏
指尖弹出寂寞
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2013-7-28
收藏
 问题点数:0 回复次数:27 
求教输入某个数是否为素数的问题?
#include <stdio.h>
void main()
{
    int m,i;
    printf("Please enter m:\n");
    scanf("%d",&m);
    for(i=2;i<m;i++);
    if(m%i==0)
    {printf("这不是一个素数");break;}

    else printf("这是一个素数\n");
}
为什么总是提示非法的break,能不能照着我这个程序修改下~~并解释下为什么break是非法的?
求大神!


[ 本帖最后由 指尖弹出寂寞 于 2013-8-3 16:43 编辑 ]
搜索更多相关主题的帖子: include 
2013-08-03 16:10
指尖弹出寂寞
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2013-7-28
收藏
得分:0 
#include <stdio.h>
# include<math.h>
void main()
{
    int m,i,k;
    printf("Please input a integer number\n");
    scanf("%d",&m);
    k=(int)sqrt(m);
    for(i=2;i<=k;i++)
       if(m%i==0) break;
        if(i>k) printf("%d is  a prime number\n",m);
        else printf("%d is not a prime number\n",m);
}
这是书中的正确程序,我不明白的是它的循环体到底有多长?是不是只有红色标记的一句话?!!
2013-08-03 16:30
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
看一下书上对break的描述

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-08-03 16:32
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
再跟书上对比一遍,看你增加什么了?

总有那身价贱的人给作业贴回复完整的代码
2013-08-03 16:37
sr5811068
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-8-3
收藏
得分:0 
break是用在选择语句后的,你这里printf后面不用break他也会自动跳出
正确的写法是这样的

#include <stdio.h>
void main()
{int m,i;
 printf("Please enter m:\n");
 scanf("%d",&m);
 for(i=2;i<m;i++)
 {if(m%i==0) break;}
 if(i>=m) printf("这是一个素数");
 else printf("这不是一个素数");
}
2013-08-03 16:42
指尖弹出寂寞
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2013-7-28
收藏
得分:0 
回复 3楼 peach5460
谢谢斑竹了,我明白break语句只能用在switch和循环语句后。只是我很不甘心,我不想必须要用书上的方式来判断是否为素数。自己写了一个程序,没想到错误这么大!
2013-08-03 16:51
指尖弹出寂寞
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2013-7-28
收藏
得分:0 
回复 5楼 sr5811068
首先谢谢你!你的程序最后两句话,实际上和书上是一样的,必须这样判断么? 有没有别的方法?
2013-08-03 16:52
sr5811068
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-8-3
收藏
得分:0 
回复 7楼 指尖弹出寂寞
素数是除了1和本身外不能被任何数整除的数,有三种判断方法:
1.x从2到x-1都不能被整除
2.x从2到x/2都不能被整除
3.x从2到x的平方根都不能被整除
第一种方法最简单,这时候当i>=x之前都满足x%i!=0时才是素数,当i>=x之前有x%i==0就要停止循环了
2013-08-03 17:02
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 6楼 指尖弹出寂寞
就特么没看见我说啥了?你这句多个分号知道吗?
for(i=2;i<m;i++);

总有那身价贱的人给作业贴回复完整的代码
2013-08-03 17:08
指尖弹出寂寞
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2013-7-28
收藏
得分:0 
回复 9楼 embed_xuel
额,不好意思! 我问的问题不在那里,我的程序是自己写的,再加上那个问题我在本来程序上是没有的可能编辑的时候出来了~  不好意思。谢谢你了!
2013-08-03 17:17
快速回复:求教输入某个数是否为素数的问题?
数据加载中...
 
   



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

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