Hello , am new here and i need some help in finding prime numbers.....I actually wrote this code below and it compiles but it repeats sequence with some numbers or most, plus if you run it you will see that the prime numbers are printed as prime numbers only but repeated ...but if you notice the numbers that are not prime, it actually prints the numbers not to be prime and then prints them to be prime and then again not prime. Again it runs too many times for all the numbers. Can someone please help me see whats wrong with the code....thanks

``````public class Prime {

/**
* @param args
*/
public static void main(String[] args) {

int i,i2;

for ( i=1;i<=40;i++){

for(i2=1;i2<i;i2++){
if(i%i2==0 & i2!=1){
System.out.println(i+"is not prime\n");}
if(i%i2!=0){
System.out.println(i+"is a prime number\n");}

}

}

}

}``````
2
Contributors
1
4
Views
8 Years
Discussion Span
Last Post by firstPerson

Make your first for loop like so :

``for ( i=2;i<=40;i++)``

Then make your second for loop like so

``for(i2=2; i2<i; i2++)``

The main problem is that you are printing inside the loop. Print outside.
You overall loop could look like this :

``````int i = 0, i2 = 0;
for(i = 2; i <= 40; i++){
for(i2=2; i2<i; i2++){
if(i % i2 == 0 && i != 2) break;
}
if(i2 == i)print "i" is prime;
else print "i" is not a prime;

}``````

See how the print is outside the second loop.

Edited by firstPerson: n/a

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.