刚学java,遇到了些问题,弄了半天了,大家帮看看是哪出问题了,谢谢!产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是?public class N2{
public static void main(String[] args){
int i;
int [] a = new int[100];
boolean flag=true;
for( i=0; i<100; i++){
a[i] = (int)(Math.random()*1000);
}
System.out.print("产生的随机数为:");
for( i=0; i<100; i++){
System.out.print(a[i]+" ");
}
System.out.println();
for( i=0; i<100; i++){
for(int j=2; j<=a[i]; j++){
if(a[i]%j!=0)
flag = true;
else
flag = false;
}
}
if(flag=true)
System.out.print("是素数的有:"+a[i]+" ");
System.out.println();
else
System.out.print("不是素数的有:"+a[i]+" ");
}
}

解决方案 »

  1.   

    if(flag=true)
    System.out.print("是素数的有:"+a[i]+" ");
    System.out.println();
    else
    System.out.print("不是素数的有:"+a[i]+" "); 这个时候i已经循环结束了
      

  2.   


    for(int i = 2; i < 999; i++) {
      boolean flag = true;  for(int j = 2; j < i; j++ ) {
         if(i % j == 0) {
            flag = false; 
            break;
         }
      }
     
       if(flag==true)
         System.out.println("是素数的有:"+i+" ");
       else
          System.out.println("不是素数的有:"+i+" "); }
      

  3.   


    public class N2{ 
     public static void main(String[] args){ 
      int i; 
      int [] a = new int[100]; 
      for( i=0; i <100; i++){ 
       a[i] = (int)(Math.random()*1000); 
      } 
      System.out.print("产生的随机数为:"); 
      for( i=0; i <100; i++){ 
       System.out.print(a[i]+" "); 
      } 
      System.out.println(); 
      for( i=0; i <100; i++){ 
       for(int j=2; j <=a[i]; j++){ 
        if(a[i]%j!=0) 
        System.out.print("是素数的有:"+a[i]+" ");
        else 
        System.out.print("不是素数的有:"+a[i]+" ");
        break;
       } 
      } 
     } 
    }
      

  4.   

    for(int i = 0; i  < 999; i++) { 
      boolean flag = true;   for(int j = 2; j  < a[i]; j++ ) { 
         if(a[i] % j == 0) { 
            flag = false;  
            break; 
         } 
      } 
      
       if(flag) 
         System.out.println("是素数的有:"+a[i]+" "); 
       else 
          System.out.println("不是素数的有:"+a[i]+" ");  
    }