首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

求解一道关于素数的有关问题,多谢

2012-01-16 
求解一道关于素数的问题,谢谢!public class Sushu{public static void main(String args[]){int count0f

求解一道关于素数的问题,谢谢!
public class Sushu{
  public static void main(String args[]){
  int count=0;
  for(int i=101;i<200;i+=2){
  for(int j=2;j<=Math.sqrt(i);j++){
  if(i%j==0)
  break;
  else
  System.out.println(i);  
  }
  }
  count++;
  System.out.println("素数的个数为:"+count);
  }
}



请问为什么某些素数会被重复打出呢?

[解决办法]
二楼准确的解释了为什么有些素数会输出多遍,也就是楼主的问题。一楼是标准的程序,但没解释楼主的问题。
[解决办法]
2楼分析的很正确啊,else执行了多次,当然打印出多次了。你自己用debug模式跟一下,应该可以看到的
[解决办法]
我就跟你说吧。

你那程序的问题,不在于你。为什么有的素数输出了很多遍。

首先从你的程序就可以看出你的逻辑出现了错误。

你觉得解释本来就错误的逻辑有意义吗?

下面是正确的代码。

Java code
public class Sushu{    public static void main(String args[]){        int count=0,i,j;        for(i=101;i<200;i+=2){            for(j=2;j<=Math.sqrt(i);j++){                if ( i % j == 0) {                    break;                }               }            if ( j > Math.sqrt(i)) {                System.out.print(i+" ");                count++;            }        }        System.out.println();        System.out.println(count+"个素数");            }} 

热点排行