当前位置: 代码迷 >> J2SE >> 判断素数
  详细解决方案

判断素数

热度:70   发布时间:2016-04-23 20:46:10.0
求助:判断素数
题目:
判断素数的方法:检验小于等于根号下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++后,程序或许还有问题;
  相关解决方案