|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 新手问个问题:100-200的全部素数
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1659
人关注过本帖
标题:
新手问个问题:100-200的全部素数
只看楼主
加入收藏
順哥哥orz
等 级:
新手上路
帖 子:12
专家分:0
注 册:2010-4-20
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:7
新手问个问题:100-200的全部素数
#include "stdio.h"
void main()
{
int i , n ;
for(n=101 ;n< 200;n+=2)
{
for(i=2;i<=n-1;i++)
这里的i初始化为什么是2,不是100啊?
if(n%i==0)
break;
if(i== n )
printf("%5d",n);
}
}
高手帮解答下吧,谢谢
搜索更多相关主题的帖子:
素数
2010-04-21 09:57
举报帖子
使用道具
赠送鲜花
account
等 级:
论坛游侠
帖 子:91
专家分:107
注 册:2010-4-12
第
2
楼
收藏
得分:2
以下是引用
順哥哥orz
在2010-4-21 09:57:11的发言:
#include "stdio.h"
void main()
{
int i , n ;
for(n=101 ;n< 200;n+=2)
{
for(i=2;i<=n-1;i++)
这里的i初始化为什么是2,不是100啊?
if(n%i==0)
break;
if(i== n )
printf("%5d",n);
}
}
高手帮解答下吧,谢谢
这是数学问题啊,很容易想明白的,随便假设一个数字,105,不是素数吧,你如果i从100开始,那你得出的结论是什么?只能被105整除,那么成素数了?
2010-04-21 10:06
举报帖子
使用道具
赠送鲜花
account
等 级:
论坛游侠
帖 子:91
专家分:107
注 册:2010-4-12
第
3
楼
收藏
得分:3
还是要根据素数的定义来想的,仅被1以及自身能够整除的数,那么i值可以从2开始起算,但是i是否一定要小于n-1呢?显然也不用,其实n/2,(假设101不能被2到51以内的数整除,那么51以上也没必要再去跑循环整除)或者n开根号都可以作为上限值。
2010-04-21 10:10
举报帖子
使用道具
赠送鲜花
曦月
等 级:
论坛游民
帖 子:30
专家分:51
注 册:2010-4-7
第
4
楼
收藏
得分:3
要先对2开始取余一直到n/2,如果都不能整除就表示它是素数了
2010-04-21 10:33
举报帖子
使用道具
赠送鲜花
lwlls668
等 级:
论坛游民
帖 子:59
专家分:72
注 册:2010-4-9
第
5
楼
收藏
得分:3
#include<stdio.h>
main()
{int i,j=0,n;
for(n=100;n<=200;n++)
{for(i=2;i<=(int)sqrt(n);i++)
{
if(n%i==0)
{j=1;break;}
}
if(j==0)printf("%d\t",n);
j=0;
}
}
新手玩玩的
2010-04-21 12:00
举报帖子
使用道具
赠送鲜花
xueyuhanhai
等 级:
业余侠客
帖 子:90
专家分:238
注 册:2010-4-5
第
6
楼
收藏
得分:3
#include "stdio.h"
void main()
{
int i , n ;
for(n=101 ;n< 200;n+=2)//n是素数的范围
{
for(i=2;i<=n-1;i++) //i是判断素数的变量,只要能够被2到n-1之内的数整除即说明它不是素数吧,其实也可以是2到n/2或到n的开根号也可以的。
if(n%i==0)
break;
if(i== n )//如果除了本身和1外没有数可以整除它,即是素数。
printf("%5d",n);
}
}
2010-04-21 13:58
举报帖子
使用道具
赠送鲜花
lddwh
等 级:
论坛游民
帖 子:34
专家分:79
注 册:2010-4-7
第
7
楼
收藏
得分:3
#include <stdio.h>
#include <math.h>
bool IsPrime(int x);
//判断是否为素数
void main()
{
int x;
printf("请输入一个正整数\n");
scanf("%d",&x);
if(x<=1)
{
printf("ERROR");
return;
}
printf("这个数%s素数\n",IsPrime(x)?"是":"不是");
}
bool IsPrime(int x)
{
int i;
for(i=2;i<=sqrt(x);i++)
if(x%i==0)
return false;
return true;
}
2010-04-21 22:26
举报帖子
使用道具
赠送鲜花
zjhwade
等 级:
新手上路
帖 子:14
专家分:7
注 册:2010-4-21
第
8
楼
收藏
得分:3
这得从素数的定义开始:
素数指的是只能被1和它本身整除的数。
那么i的初值是2就很顺利陈章啦!一个数肯定能被1整除喽,所以从2开始循环,直到n!要是期间有被整除的就不是素数了……
我也新手,交流交流
2010-04-23 12:28
举报帖子
使用道具
赠送鲜花
8
1/1页
1
快速回复:
新手问个问题:100-200的全部素数
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.023313 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved