题目:
判断素数的方法:检验小于等于根号下n的素数是否都能够整除n,如果不是,则n就是素数。
用以上方法求前50个素数。
我的程序是:
/**
判断n是否素数的方法:检测<=开根号n的素数是否都能够整除n,如果不能,则n为素数
*/
class Exercise606
{
public static void main(String[] args)
{
int[] array=new int[50];
int i=0;
int j=3;
array[0]=2;
while(i<50)
{
int flag=0;
double sqrtNum=Math.sqrt(j);
for(int n=0;n<=i&&array[n]<=sqrtNum;n++)
{
if(j%array[n]==0)
break;
else
flag=1;
}
if(flag==1)
array[++i]=j;
j++;
}
for(int n=0;n<50;n++)
System.out.print(array[n]+" ");
}
}
但是每次都报错:ArrayIndexOutOfBoundsException:50
是哪里错了呢?
谢谢先。
------解决方案--------------------
先弄明白i++和++i的区别。
array[++i]=j;
应该是:
array[i++]=j;
------解决方案--------------------
改为i++后,程序或许还有问题;