| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 15874 人关注过本帖
标题:用C语言 输出100以内的素数,
只看楼主 加入收藏
水漪儿
Rank: 2
来 自:shangshida
等 级:论坛游民
帖 子:147
专家分:10
注 册:2007-7-19
收藏
得分:0 
以下是引用学c在2007-11-7 17:45:56的发言:
#include <stdio.h>
int main(void)
{
int i,j,k;
printf("%d\n",1);1肯定是素数
for(i=1;i<=100;i+=2)
{
for(j=2;j<i;j++)
if(i%j==0) break;
if(i==j)
printf("%d\n",i);
}
return 0;
}

时间复杂度高了

2007-11-07 18:44
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
以下是引用学c在2007-11-7 17:45:56的发言:
#include <stdio.h>
int main(void)
{
int i,j,k;
printf("%d\n",1);1肯定是素数
for(i=1;i<=100;i+=2)
{
for(j=2;j<i;j++)
if(i%j==0) break;
if(i==j)
printf("%d\n",i);
}
return 0;
}

1 不是素数


—>〉Sun〈<—
2007-11-07 18:52
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

/* 判断素数的函数 */

long sushu(long n)
{
long i;

for(i = 2; i <= n / 2; i++)
{
if(n % i == 0)
return 0;
}

if(n > 1)
return n;

return 0;
}


—>〉Sun〈<—
2007-11-07 18:53
why908
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2007-11-6
收藏
得分:0 
有点不明白,i+=2的意义是什么呢,能注释一下吗
for(j=2;j<i;j++)
if(i%j==0) break;
if(i==j)
这两句的意思是什么呢,用在这边求什么呢

为什么1这个素数不能跟,1以上的素数,一起输出吗,
要分开输出呢

漫漫的人生,忧忧的走?何时能把编程的路走透呢?
2007-11-07 19:49
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
1不是素数.
还有偶数一定不是素数(除2外)


素数要检测的只要对已求得的素数做判断就行.

倚天照海花无数,流水高山心自知。
2007-11-07 20:31
wanderful
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-11-4
收藏
得分:0 
i+=2相当于i=i+2;



for(j=2;j<i;j++)
if(i%j==0) break;/*是排除能被小于i的自然数整除的数*/
if(i==j) /*如果从2到小于i的数都不能整除i,即为素数*/
就打印出来
2007-11-07 20:36
mebol
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-10-7
收藏
得分:0 

for(j=2;j<i;j++)
if(i%j==0) break;
if(i==j)
这意思是i与j取模的值如果是0,就返回。如果i等于j就做下面的
哈哈,我也是新手,楼主:我对吗?

2007-11-07 20:45
jxj777
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-10-27
收藏
得分:0 
以下是引用cosdos在2007-11-7 18:53:41的发言:

/* 判断素数的函数 */

long sushu(long n)
{
long i;

for(i = 2; i <= n / 2; i++)
{
if(n % i == 0)
return 0;
}

if(n > 1)
return n;

return 0;
}

兄弟少了个循环吧


一个人的力量是缈小的....... 互帮互助才是出路
2007-11-07 21:06
jxj777
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-10-27
收藏
得分:0 


int main()
{
int i,j;
printf("100内的素数包括:\n");
for(i=2;i<=100;i++)
{
for(j=2;j<=sqrt(i);j++)
{
if(i%j==0)
break;
}
if(j>sqrt(i))
{
printf("%d,",i);
}
}
printf("\n");
return 0;
}


一个人的力量是缈小的....... 互帮互助才是出路
2007-11-07 21:17
zhangzhihai
Rank: 1
来 自:江西南昌
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-3-10
收藏
得分:0 


main()
{
int i,j;
clrscr(); //清屏函数
printf("1,2\n");
for(i=2;i<100;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)
goto loop; //goto语句

}
printf("%d\n",i); loop: ;    //这有一个空语句
} getch(); //显示结果
}
这个可以输出素数哦.

2007-11-08 12:22
快速回复:用C语言 输出100以内的素数,
数据加载中...
 
   



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

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