搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 请教素数的求法
标题:
请教素数的求法
取消只看楼主
Hollie
等 级:
新手上路
帖 子:19
专家分:1
注 册:2009-9-29
结帖率:
0
楼主
问题点数:0 回复次数:4
请教素数的求法
下面是我写的 程序
输出100到200之间的素数
#include<stdio.h>
#include<math.h>
void main()
{
int i=2,j=100;
for(j=100;j<=200;j++)
{
for(i=2;i<(sqrt(j));i++)
if(j%i==0) break;
printf("%d " ,j);
}
printf("\n" );
}
不知道是什么问题 全部输出原数
搜索更多相关主题的帖子:
求法
素数
2009-09-29 17:55
Hollie
等 级:
新手上路
帖 子:19
专家分:1
注 册:2009-9-29
第
2
楼
得分:0
以下是引用
m456m654
在2009-9-29 18:16:53的发言:
#include<stdio.h>
#include<math.h>
void main()
{
int i,j;
for(j=100;j<=200;j++)
{
for(i=2;i<=sqrt(j);i++)
if(j%i==0) break;
if(i>sqrt(j))
...
谢谢 这位朋友 我不明白为什么加一个语句 if(i>sqrt(j)) 就行了
我不加 上面 不是写了 小于等于吗? 为什么不行呢?
2009-09-29 18:22
Hollie
等 级:
新手上路
帖 子:19
专家分:1
注 册:2009-9-29
第
3
楼
得分:0
以下是引用
m456m654
在2009-9-29 18:32:31的发言:
第一:你没有加等号,只是小于。
第二:当你break的时候,for循环就结束了。而你没有将后面的printf语句放到第二个for循环里。所以它就只在第一个for循环里起作用,所以就原数输出了。
不对呀 我上面是小于等于啊
break 是用来 跳出内循环 当不是素数的时候就跳出去 是的话 就输出下面的printf语句
这么说 我的printf没放到内循环里面 那怎么样才算放进去?
我就是对for循环 不大熟悉 谢谢了
2009-09-29 18:43
Hollie
等 级:
新手上路
帖 子:19
专家分:1
注 册:2009-9-29
第
4
楼
得分:0
以下是引用
m456m654
在2009-9-29 18:49:36的发言:
#include<stdio.h>
#include<math.h>
void main()
{
int i=2,j=100;
for(j=100;j<=200;j++)
{
for(i=2;i<(sqrt(j));i++)
{
if(j%i==0)
break;
...
我把程序改这样 怎么就不对了呢 哎 服了 自己
#include<stdio.h>
#include<math.h>
void main()
{
int i,j;
for(j=101;j<=200;j=j+2)
{
for(i=2;i<=sqrt(j);i++)
{
if(j%i==0) break;
// if(i>sqrt(j))
printf("%d ",j);
}
}
printf("\n" );
}
2009-09-29 19:05
Hollie
等 级:
新手上路
帖 子:19
专家分:1
注 册:2009-9-29
第
5
楼
得分:0
以下是引用
m456m654
在2009-9-29 19:13:33的发言:
你没有理解我的意思,当然我上个帖子说的有点误导。
我本来是想表达你为什么错了,那个程序是你认为对的,我是想把你的错误标记出来。
那个绿色的口号不应该在那个位置;
这样改:
#include<stdio.h>
#include<math ...
谢谢 你 能留下你QQ吗 我还是不大明白
我对for 循环的一直头晕
2009-09-29 19:24
5
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-287268-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.461646 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved