java - Problems with prime number generator, using ArrayList -


i have been having heck of time trying make prime number generator work. it's supposed list first 100 primes, sieving means either cheating , looking artificial limit composites, or creating bunch of needless arrays of composite numbers.

just dividing , testing, i've tried using simple array of primes , testing against them, left array empty , returning "x/0" errors. arraylist lets me expand array needed, i've had trouble getting test loop work. it's point variables gibberish in head , i'm changing values @ random. can point out concept went wrong?

public static void main(string[] args) {     arraylist<integer> primes = new arraylist<>();     int testnum = 1;      while (primes.size() < 100)     {         (int index = 0; index <= testnum; index++)         {             if ((testnum % primes.get(index)) == 0)                 primes.add(testnum);         }         testnum++;     }      system.out.println("the first 100 prime numbers are:");     (int index = 0; index < 100; index++)         system.out.println((index + 1) + ": " + primes.get(index)); } 

}

fixed: saleem khan. had mess upper limit , few other things working , printing right.

arraylist<integer> primes = new arraylist<integer>();     int testnum;     int index;      (index = 1; index <= 1000; index++) //index counts 100 primes     {         int factors = 0;          (testnum = index; testnum >= 1; testnum--)         {             if (index % testnum == 0)             {                 factors = factors + 1;             }         }          if (factors == 2)         {             primes.add(index);         }     }      system.out.println("the first 100 prime numbers are:");     (int prime = 0; prime < 100; prime++)     {         system.out.print((prime + 1) + ": ");         system.out.println(primes.get(prime));     } } 

edit: deleted erroneous code @ 20 , 21

hi use code , problem logic.

public static void main(string[] args) {     int = 0;     int num = 0;      list<integer> primes = new arraylist<integer>();      (i = 1; <= 100; i++) {         int counter = 0;          (num = i; num >= 1; num--) {             if (i % num == 0) {                 counter = counter + 1;             }         }          if (counter == 2) {             primes.add(i);         }     }     system.out.println("the first 100 prime numbers are:");     for(int prime : primes) {         system.out.println(prime);     } } 

you cant value empty list, throw indexoutofboundexception


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -