我编的程序代码如下:
public class Sushu{
public static void main(String args[]){
int i,j,g=1,k=0;
System.out.println("从100到200之间的素数分别是:");
for(i=100;i<=200;i++){
for(j=2;j<i/2&&g==1;j++)
if(i%j==0)
g=0;
if(g==1)
{System.out.print(i+" ");
k+=1;
if(k%5==0)//每输出5个素数则换行
System.out.println();
g=1;
}
}
}
}
以上代码未能得到正确的结果,而以下程序则能够输出100到200之间的素数,但是不能满足每输出5个素数就换行的要求!!
public class Sushu{
public static void main(String args[]){
int i,j,g=1,k=0;
System.out.println("从100到200之间的素数分别是:");
for(i=100;i<=200;i++){
for(j=2;j<i/2&&g==1;j++)
if(i%j==0)
g=0;
if(g==1)
System.out.print(i+" ");
k+=1;
if(k%5==0)//每输出5个素数则换行
System.out.println();
g=1;
}
}
}
------解决方案--------------------
你是把非素数也计成换行元素内了
- Java code
int i, j, g = 1, k = 0; System.out.println("从100到200之间的素数分别是:"); for (i = 100; i <= 200; i++) { g = 1; for (j = 2; j < Math.sqrt(i) && g == 1; j++) if (i % j == 0) { g = 0; break; } if (g == 1) { System.out.print(i + " "); k += 1; if (k % 5 == 0)// 每输出5个素数则换行 System.out.println(); } }