Java For loop Issue in condition statement -


i trying find our prime numbers in given array. this, have written following code. somehow, not working expected. kindly me debug issue.

public class primenbr {      public static void main(string[] args)  {          int a[]= { -2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97};          int prime_flag=0;         //for loop keep going 1 one , check if number prime          system.out.println("welcome basic prime number program");         for(int j=0;j<=99 & a[j] > 1;j++) {             prime_flag=0;                  //checks prime number                 for(int i=2,div=(int) math.sqrt(a[j]) + 1; <= div;i++){                      if (a[j]%i==0){                          prime_flag++;                                                }                 }              if ((prime_flag == 0 & a[j] >= 2) | a[j] == 2)                 system.out.println("hurray!!! prime number"+a[j]);         }     } } 

output:

welcome basic prime number program

condition iterate loop

for(int j=0; j<=99 & a[j] > 1; j++) 

is j<=99 & a[j].

you initialized j 0, j<=99 part true, problem lies in second part of condition.
j=0 condition a[j]>1 becomes a[0]>1, a[0] -2, leaves -2>1 false.

so end true & false false, loop no longer iterate (or more precise not start iterating).


Comments