当前位置: 代码迷 >> Java相关 >> 找出这个程序的错误!
  详细解决方案

找出这个程序的错误!

热度:282   发布时间:2007-09-22 14:38:17.0
找出这个程序的错误!

输出2到10000之间所有的素数,每行显示8个,我的程序如下,不知道错在那里,请指教!
class OutputPrime{
public static void main(String[] args){
int number=2;
int count=0;
while(number<=10000){
if(isPrime(number)){
count++;
if(count%8==0){
System.out.println();
System.out.print(number);
}
else
System.out.print(number);
}
number++;
}
}
public static boolean isPrime(int number){
for(int i=2;i<=number/2;i++)
if(number%i==0){
break;
return false;

}
return true;
}

}

搜索更多相关的解决方案: public  number  count  

----------------解决方案--------------------------------------------------------
以下是引用晨风lxj在2007-9-22 14:38:17的发言:

输出2到10000之间所有的素数,每行显示8个,我的程序如下,不知道错在那里,请指教!
class OutputPrime{
public static void main(String[] args){
int number=2;
int count=0;
while(number<=10000){
if(isPrime(number)){
count++;
if(count%8==0){
System.out.println();
System.out.print(number);
}
else
System.out.print(number);
}
number++;
}
}
public static boolean isPrime(int number){
for(int i=2;i<=number/2;i++)
if(number%i==0){
break;//这个不要啦
return false;

}
return true;
}

}


----------------解决方案--------------------------------------------------------

谢谢ls;
遇到return表示方法结束吗?


----------------解决方案--------------------------------------------------------

遇到return 当然会结束函数了.


----------------解决方案--------------------------------------------------------

还是有点不明白,在if语句块中,用break退出循环,不执行下面的return false语句,而执行下面的return true;语句,实际输入从2到10000之间的数!
这是我的理解,请指出错误!


----------------解决方案--------------------------------------------------------
编译不能通过!
----------------解决方案--------------------------------------------------------
public static boolean isPrime(int number){
for(int i=2;i<=number/2;i++)
if(number%i!=0){
return false;
}
return true;
}

这样才对.

----------------解决方案--------------------------------------------------------
呵呵,还是版主厉害.学习了
----------------解决方案--------------------------------------------------------

我才刚学JAVA,只是目前的东西和C差不多.
----------------解决方案--------------------------------------------------------

package calendardemo;
public class ClassDemo {

public static void main(String[] args) {
test t=new test();
t.fors();
}
}
class test
{
int i,j,sum=0;
public void fors()
{
for(i=2;i<100;i++)
{
for(j=2;j<=Math.sqrt(i);j++)

if(i%j==0)
break;
if(j>Math.sqrt(i))
{sum++;
if(sum%8==0)
System.out.println();
else if(i<10)
System.out.print(" "+i+" ");
else if(i>=10 && i<100)
System.out.print(" "+i+" ");
else if(i>=100 && i<1000)
System.out.print(" "+i+" ");
else if(i>=1000 && i<10000)
System.out.print(" "+i+" ");

}
}
}
}

//这个应该也可以,比你少循环了N次,哈哈,


----------------解决方案--------------------------------------------------------
  相关解决方案