| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 895 人关注过本帖
标题:求素数
只看楼主 加入收藏
寻乐的狼
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2007-2-16
结帖率:100%
收藏
 问题点数:0 回复次数:11 
求素数

请帮忙加以改正(用我的算法),这样有助于我的学习,谢谢大家

/* 总的方向就是——用一个近似素数的数除以近似素数的数,判断其余数 */
#include<stdio.h>
int main(void)
{
int max,min,n,m;
bool count1;
bool count2;
while(scanf("%d %d",&min,&max)==2)
{
if(max<min)
printf("max>min");
else
break;
}
for(m=min;m<max;)
{
if(m<7) /* 将要计算的素数范围分两个部分 <7按+1计数
>7按+6计数 */
{
for(n=2,count1=true;n<6;n++) /* 用做被除数,将其再分成两部分,<7按+1计数
>7按+6计数 */
{
if(m%n==0)
break;

}
count1=false;
m+=1;
}
else
{
for(n=2,count2=true;n*n<=m;)
{
{
if(m%n==0)
break;
}
if(n<7)
n+=1;
else
n+=6;

}
count2=false;
m+=6;
}
if(count1==0||count2==0) /*使用bool值,如果能够进入循环体(if(m%n==0)),则打印其值 */
printf("%d \t",m);
}
return 0;
}





搜索更多相关主题的帖子: 素数 
2007-10-23 09:07
绿梦
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-10-13
收藏
得分:0 
是求素数吗?  不用这么麻烦吧
2007-10-23 10:44
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
用一个近似素数的数除以近似素数的数,判断其余数

把方法解释清楚.

你的 bool count1;
bool count2;
没有初始化.

倚天照海花无数,流水高山心自知。
2007-10-23 11:35
风的声音
Rank: 1
等 级:新手上路
帖 子:128
专家分:0
注 册:2007-3-27
收藏
得分:0 
说一下你的方法吧,还有while(scanf("%d %d",&amp;min,&amp;max)==2)?

一念心清净,莲花处处开。 一花一净土,一土一如来。
2007-10-23 13:11
魔女尐燕
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-10-22
收藏
得分:0 
貌似算法不太对



by 雨中飞燕 C/C++讨论群:46520219
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
Blog: http://yzfy.programfan.com

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]

2007-10-23 13:28
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 
不大敢回答爱因斯坦的问题

Repeat  Life=Study;Until (death);
2007-10-23 13:31
天人和一
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-10-11
收藏
得分:0 
#include "stdio.h"
main()
{
int n,i,j,a;
scanf("%d",&n);
for(i=2;i<=n;i++)
{
a=1;
for(j=2;j<i;j++)
{
if(i%j==0)
a=0;
}
if(a==1)
printf("n=%d\n",i);
}
}
这个程序怎么样啊?
2007-10-23 14:20
寻乐的狼
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2007-2-16
收藏
得分:0 
以下是引用nuciewth在2007-10-23 11:35:32的发言:
用一个近似素数的数除以近似素数的数,判断其余数

把方法解释清楚.

你的 bool count1;
bool count2;
没有初始化.
运行没有错误,恩,是忘初始化了

用C打破禁锢的世界
2007-10-23 15:11
寻乐的狼
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2007-2-16
收藏
得分:0 
以下是引用风的声音在2007-10-23 13:11:10的发言:
说一下你的方法吧,还有while(scanf("%d %d",&min,&max)==2)?

如果m%n都等于0,则其是素数
其中m是在判断的素数的范围中
而n是一个计数器,
之所以他们都是近似素数,是因为这样提高效率的同时,编成也较简单
都是{1,2,3,4,5,6,7,13,19,25。。。。}这样的数


while(scanf("%d %d",&min,&max)==2)用于判断是否输入两个数字(INT),而不是char


用C打破禁锢的世界
2007-10-23 15:16
C语言的深度
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:卡特的怀抱
等 级:版主
威 望:1
帖 子:9577
专家分:19
注 册:2007-10-22
收藏
得分:0 
``

用代码打出楼房...用编程编出幸福...
2007-10-23 16:23
快速回复:求素数
数据加载中...
 
   



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

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