标题:求助一个小题目?
只看楼主
dengyunyun
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-7-20
 问题点数:0 回复次数:4 
求助一个小题目?
求100以内的素数,我写了个程序,编译通过了,运行结果只到31为止,不知道问题出在哪?知道的朋友帮看下,感激不尽
#include<stdio.h>
void main()
{
int a[100],i,j,m;
for(i=0;i<100;i++)
   {
    a[i]=i+1;
    if(a[i]==1) continue;
    m=1;
    for(j=2;j<a[i];j++)
    m=(a[i]%j)*m;
    if(m)
    printf("%d\n",a[i]);
   }
}
搜索更多相关主题的帖子: 素数 int main 
2008-07-20 14:17
dengyunyun
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-7-20
得分:0 
我一直在线等啊,朋友们花上你们宝贵的5分钟指导一下小弟吧!!
2008-07-20 14:36
qxykzx
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-7-17
得分:0 
我知道了
朋友你试着,单步跟踪就知道了,比如37模5等于2,这时m就为2,再模7,m为4这样依次类推m值会越来越大,最后m为一个负值,所以31后的数字都不会显示出来。要改算法,不过你想的这个算法,蛮有创意的。不知道我讲清楚没有,哈哈。。。共同努力!
2008-07-20 14:48
dengyunyun
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-7-20
得分:0 
谢谢了,朋友,我知道了!
2008-07-20 14:51
dengyunyun
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-7-20
得分:0 
改好了
#include<stdio.h>

void main()
{
int a[100],i,j,m;
for(i=0;i<100;i++)
   {
    a[i]=i+1;
    if(a[i]==1) continue;
    for(j=2;j<a[i];j++)
      {m=a[i]%j;
       if(m==0) break;
      }
    if(m)
    printf("%d\n",a[i]);
   }
}
2008-07-20 15:35



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




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

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