本页主题: C语言关于一个素数求法请高手指点 打印 | 加为IE收藏 | 复制链接 | 收藏主题 | 上一主题 | 下一主题

爱很疯
级别: 科员


精华: 0
发帖: 323
诚信度: 8 点
才智币: 17 点
宣传单: 1 份
在线时间:208(小时)
注册时间:2006-05-23
最后登录:2008-08-20

 C语言关于一个素数求法请高手指点

0
主程序  开头的编译预处理 定义等省了
for(i=2;i<=n/2;i++)
if(n%i==0)break;
if(i<=n/2) printf("YES/n");
else  printf("NO/n");
这样有问题吗?
顶端 Posted: 08-7-15 08:43 | [楼 主]
shg19
级别: 办事员


精华: 0
发帖: 1
诚信度: 0 点
才智币: 1 点
宣传单: 0 份
在线时间:0(小时)
注册时间:2008-07-18
最后登录:2008-07-20

 

你不会去编译一下吗。这么简单的问题还问。
哈哈!!!!!
顶端 Posted: 08-7-19 11:20 | 1 楼
zzqqbb
级别: 办事员


精华: 0
发帖: 31
诚信度: 0 点
才智币: 27 点
宣传单: 0 份
在线时间:5(小时)
注册时间:2008-07-19
最后登录:2008-08-19

 

楼主的题目是判断n是否为素数吧:
for(i=2;i<=n;i++)
  if(n%i==0)
    break;
if(i==n)
    printf("YES/n");
else  printf("NO/n");
思路是:最开始的循环里把素数本身也包含进去,然后否掉中间的所有。
愚见
我的TC出了点问题,谁运行一下看看
顶端 Posted: 08-7-19 11:41 | 2 楼
朱振军
级别: 办事员


精华: 0
发帖: 112
诚信度: 12 点
才智币: 27 点
宣传单: 0 份
在线时间:7(小时)
注册时间:2008-07-19
最后登录:2008-08-17

 

for(i=2;i<n;i++)
  if(n%i==0)
    break;
if(i==n)
    printf("YES/n");
else  printf("NO/n");
这个应该可以,不过用数字大小的一半+1即可:n/2+1就好了,i=[2,n/2+1]
顶端 Posted: 08-7-20 15:49 | 3 楼
moonester
级别: 办事员


精华: 0
发帖: 160
诚信度: 20 点
才智币: 18 点
宣传单: 0 份
在线时间:17(小时)
注册时间:2008-07-19
最后登录:2008-08-19

 

   
顶端 Posted: 08-7-20 19:06 | 4 楼
zzqqbb
级别: 办事员


精华: 0
发帖: 31
诚信度: 0 点
才智币: 27 点
宣传单: 0 份
在线时间:5(小时)
注册时间:2008-07-19
最后登录:2008-08-19

 

Quote:
引用第3楼朱振军于08-7-20 15:49发表的  :
for(i=2;i<n;i++)
  if(n%i==0)
    break;
if(i==n)
    printf("YES/n");
.......

但我觉得i<n/2+1的话,i就不会累加到n,那第二个if就永不可能啦。
顶端 Posted: 08-7-20 20:09 | 5 楼
(﹂︹﹂!)
宣传大使奖 论坛卫士奖 最佳Q友奖
级别: 最佳Q友


精华: 1
发帖: 17139
诚信度: 1005 点
才智币: 486 点
宣传单: 831 份
在线时间:1027(小时)
注册时间:2007-07-30
最后登录:2008-08-21

 

忘了
顶端 Posted: 08-7-20 20:27 | 6 楼
kitala111
级别: 办事员


精华: 0
发帖: 7
诚信度: 1 点
才智币: -1 点
宣传单: 0 份
在线时间:6(小时)
注册时间:2008-07-03
最后登录:2008-07-23

 

for(i=2;i<=sqrt(n);i++)
  if(n%i==0)
  {
    i=0;
    break;
  }
if(i)
    printf("No/n");
else  printf("Yes/n");



数字n的大小开平方(sqrt(n))即可,如果能被某数整除,将i置为0并退出循环,最后判断i为0就不是,不为0就是
顶端 Posted: 08-7-22 15:00 | 7 楼
帖子浏览记录 版块浏览记录
QZZN论坛 » 专业考试

本论坛所有内容均代表个人观点,与QZZN论坛无关,管理员保留删除任何帖子的权利,详情请查看论坛公约
Total 0.009670(s) query 5, Time now is:08-21 23:36
京ICP备05066741号
Powered by PHPWind