标题:求101-200素数
只看楼主
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
结帖率:66.67%
 问题点数:0 回复次数:8 
求101-200素数

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>

#define KAISHI 101
#define JIESHU 200
void ss (void);

int main()
{
ss();
getch();
return 0 ;
}


void ss (void)
{
int i,j;
int s=1;

for ( i=KAISHI; i<=JIESHU; i++ )
{
for ( j=2; (j<=sqrt(i)) && (s!=0); j++ )
{
if ( (i%j) != 0 )
s=1;
else s=0;
}

if ( s==1 )
printf ("%d ",i) ;
}
}


为什么输出只有101??

搜索更多相关主题的帖子: 素数 void include int JIESHU 
2007-07-04 17:31
holmeses
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-5-31
得分:0 
s=1以后没有再把s置0

for ( i=KAISHI; i<=JIESHU; i++ )
{
s=0;
for ( j=2; (j<=sqrt(i)) && (s!=0); j++ )
{
if ( (i%j) != 0 )
s=1;
}

if ( s==1 )
printf ("%d ",i) ;
}
2007-07-04 18:52
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
得分:0 
LS````我觉得你那样更不行啊````

如果像你那样在第2个for前把s赋值为0``那么第2个for永远都不会执行``你看看我的条件限制````

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-07-04 22:54
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
得分:0 
我运行了下``屏幕上什么都没有``只有一个光标一闪一闪```

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-07-04 23:02
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
得分:0 
回复:(死了都要C)求101-200素数
我把SS函数改了下``结果没什么问题```但是还是没明白为什么``原来的SS不可以`

希望知道的``能给个解答``谢谢```

void ss (void)
{
int i,j,m=0;
int s=1;

for ( i=KAISHI; i<=JIESHU; i++ )
{

for ( j=2; j<=sqrt(i) ; j++ )
{
if ( (i%j) == 0 )
break;
}

if ( j > sqrt(i) )
{
printf ("%d ",i) ;
if ( (m+=1) == 10 )
{
printf ("\n");
m=0;
}
}

}
}

运行结果:





女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-07-04 23:26
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
得分:0 
void ss (void)
{
int i,j;
int s=1;

for ( i=KAISHI; i<=JIESHU; i++ )
{//应该把蓝色部分放到第一FOR里面。
for ( j=2; (j<=sqrt(i)) && (s!=0); j++ )
{
if ( (i%j) != 0 )
s=1;
else s=0;//因为这里设置为0之后没有再次改变其值就一直为0,所以不在进入循环,也就只输出第一个素数。
}

if ( s==1 )
printf ("%d ",i) ;
}
现在在外面,没编译器不知道说的对不。
}

[此贴子已经被作者于2007-7-4 23:51:43编辑过]


深山苦学C语言,终年不见外面世界。
2007-07-04 23:50
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
得分:0 
建议不要把表达式j<=sqrt(i) 放进循环,大程序的话会影响效率,其实你上面的算法,比这还容易读一些!

深山苦学C语言,终年不见外面世界。
2007-07-04 23:54
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
得分:0 
谢谢黄蜂出`````知道了明白了```多谢了啊````我现在很开心```

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-07-05 00:18
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
得分:0 

那么热闹,我也来一个
#include<stdio.h>
int main()
{
int i,j;
for(i=101;i<=200;i++)
{
for(j=2;j<=i-1;j++)
if (i%j==0)
break;
if(i==j)
printf("%d ",i);
}
}


Repeat  Life=Study;Until (death);
2007-07-05 01:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-152728-1-1.html




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

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