| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1650 人关注过本帖
标题:2是素数,为什么2输不出?(输出前五十个素数)
只看楼主 加入收藏
zyzab
Rank: 2
等 级:论坛游民
帖 子:29
专家分:25
注 册:2010-5-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
2是素数,为什么2输不出?(输出前五十个素数)
import java.util.*;

public class Mystack {
public static void main(String[] args) {
      Stack<Integer> st=new Stack<Integer>();
      int num=2;
      int i,j,a=0;
     while(a<=50)
       {   
        
           for(i=2;i<=num-1;i++)
            if(num%i==0)
                break;
           if(num==i){a++;
               st.push(i);
               
           }
            
           num++;
              
       }
      for(j=0;j<50;j++)
          System.out.println(st.pop());
          }
    }
搜索更多相关主题的帖子: 素数 输出 
2010-10-13 01:16
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:1 
程序逻辑本身有问题!

[ 本帖最后由 cnfarer 于 2010-10-13 06:42 编辑 ]

★★★★★为人民服务★★★★★
2010-10-13 06:41
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:5 
import java.util.*;

public class Mystack {
public static void main(String[] args) {
      Stack<Integer> st=new Stack<Integer>();
      int num=2;
      int i,j,a=0;
     while(a<50) //a的值: 0到49, 已经50个
       {   
        
           for(i=2;i<=num-1;i++)
            if(num%i==0)
                break;
           if(num==i){a++;
               st.push(i);
               
           }
            
           num++;
              
       }
      for(j=0;j<50;j++)
          System.out.println(st.pop());
          }
    }

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-10-13 08:43
zyzab
Rank: 2
等 级:论坛游民
帖 子:29
专家分:25
注 册:2010-5-13
收藏
得分:0 
回复 3楼 lampeter123
不好意思,写错了,你当我的是输出51个素数好了,可是2为什么没有输出呢?
2010-10-13 13:14
jackieli2074
Rank: 6Rank: 6
来 自:上海
等 级:侠之大者
威 望:1
帖 子:183
专家分:494
注 册:2010-8-3
收藏
得分:5 
a<50就可以输出2的.     如果是a<=50就是找到51个素数   而你只输出50个素数2是在最低下所以就没有呗
2010-10-13 15:03
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:5 
以下是引用zyzab在2010-10-13 13:14:01的发言:

不好意思,写错了,你当我的是输出51个素数好了,可是2为什么没有输出呢?
   for(j=0;j<=50;j++) //由于2是第51个素数, 之前你只输出前50个, 所以没有2
          System.out.println(st.pop());

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-10-14 08:07
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:4 
LS的兄弟已经说明了哈
2010-10-14 08:37
llsbdx
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-6-25
收藏
得分:0 
for(i=2;i<=num-1;i++)
            if(num%i==0)
                break;
           if(num==i){a++;
               st.push(i);
               
           }
因为num等于2时循环不运行..
  i=2   i<2-1  ;不满足条件..
2010-10-19 16:27
快速回复:2是素数,为什么2输不出?(输出前五十个素数)
数据加载中...
 
   



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

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