Java问题求助

来源:百度知道 编辑:UC知道 时间:2024/05/22 20:24:10
public class Java16 {

/**
* @param args
*/

public static boolean isPrime(int num){
int j,k=1;
for(j=2;j<num;j++)
if(num%j==0)
k=0;
if(k==1)
return true;
else return false;
}
public static void main(String[] args) {
// TODO 自动生成方法存根
int i;
int count=0;
for(i=2;i<=1000;i++){
if(isPrime(i))
{
System.out.print(i+" ");
count++;
}
if(count%10==0)
System.out.println();
}
}
}
这是我写的程序,可以运行,目的是求1000以内的所有素数,并且打印出来,每行10个。我的程序运行了,结果是对的,每行也有10个可以却有很多个回车,不知道是为什么,我每行只打了一次回车,但结果却很多回车。大家帮忙看看,谢谢了~
2 3 5 7 11 13 17 19 23 29

31 37 41 43 47 53 59 61 67 71

73 79 83 89 97 101 103 107 109 113
1楼2楼都是错的,拜托你们运行了再讲好不好,你们的错误简直是。。。离谱

127 131 137 139 149 151 157 163 167 173

179 181 191 193 197 199 211 223 227 229

233 239 241 251 257 263 269 271

逻辑问题
public static void main(String[] args) {
// TODO 自动生成方法存根
int i;
int count=0;
for(i=2;i<=1000;i++){
if(isPrime(i))
{
System.out.print(i+" ");
count++;
}
if(count%10==0)
System.out.println();
}
}
改成:
public static void main(String[] args) {
// TODO 自动生成方法存根
int i;
int count=0;
for(i=2;i<=1000;i++){
if(isPrime(i))
{
System.out.print(i+" ");
count++;
if(count%10==0)
System.out.println();
}
}

}

if(count%10==0){
System.out.println();
count++;
}

你的问题在,当count=10之后,再次进入循环,这时候i=11 count=10,还是会进入判断,打印回车。

还有,代码是需要调试的,你应该学习下,这个调试并不是很难。

当找到第30个素数113时,count == 30;打印空行
进入下一次循环,114不是素数,但count的值没变,还是30,所以又打印空行
类推

服了...
1楼2楼讲的有错吗?
严重怀疑楼主运行程序没有...

问题处在楼主的for循环里面。
举个例子:
当count=10的时候也就是到了i=29的时候,一个if语句: