输出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;
}
}
----------------解决方案--------------------------------------------------------
输出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次,哈哈,
----------------解决方案--------------------------------------------------------