写了一个输出素数的程序:代码如下
public class BreakStructure { public static void main(String[]args)
{
int n=0,m,j,i;
for(i=1;i<=50;i+=2)
{
m=(int)Math.sqrt((double)i);
for(j=2;j<=m;j++)
if((i%j)==0) break;
if(j>=m+1)
{
if(n%6==0)
System.out.println("\n ");
System.out.print(i+"\t");
n++;
}
}
}结果输出的是:1 3 5 7 11 13
17 19 23 29 31 37
41 43 47有1 肯定是错的阿,还有没得2,该怎么改?
public class BreakStructure { public static void main(String[]args)
{
int n=0,m,j,i;
for(i=1;i<=50;i+=2)
{
m=(int)Math.sqrt((double)i);
for(j=2;j<=m;j++)
if((i%j)==0) break;
if(j>=m+1)
{
if(n%6==0)
System.out.println("\n ");
System.out.print(i+"\t");
n++;
}
}
}结果输出的是:1 3 5 7 11 13
17 19 23 29 31 37
41 43 47有1 肯定是错的阿,还有没得2,该怎么改?
{
int n = 0, m, j, i;
for (i = 1; i <= 50; i += 2) // 这里已经把 2 跳过去了,因为 i 取值是 1, 3, 5, 5, ....
{
m=(int) Math.sqrt((double)i);
for (j = 2; j <= m; j++)
if ((i % j) == 0) break;
if (j >= m + 1) // i = 1 时 m = 1,j = 2,那么此条件符合,会输出 i,即1
{
if (n % 6 == 0) // n 是用来控制断行的变量
System.out.println("\n ");
System.out.print(i + "\t");
n++;
}
}
}
}