L.Wood22
L.Wood22

Reputation: 13

Print every prime number before N number

Hey I am beginning to program using java and my teacher used this example in class for our homework which was to create a java program that prints out every prime number before reaching the upper limit that the user inputs. I am not understanding the second part and wondering if someone could help explaining it to me.

import java.util.Scanner;

public class Primes {

    public static void main(String args[]) {

      //get input for the upper limit
      System.out.println("Enter the upper limit: ");          
      //read in the limit
      int limit = new Scanner(System.in).nextInt();

      //use for loop and isPrime method to loop through until the number reaches the limit
      for(int number = 2; number<=limit; number++){             
      //print prime numbers only before the limit 
          if(isPrime(number)){          
              System.out.print(number + ", ");                 
          }
      }    
    }    

    //this part of the program determines whether or not the number is prime by using the modulus 
    public static boolean isPrime(int number){
        for(int i=2; i<number; i++){
           if(number%i == 0){
               return false; //number is divisible so its not prime
           }
        }
        return true; //number is prime now
    }        
}

Upvotes: 0

Views: 898

Answers (3)

John
John

Reputation: 1

Just a short (not efficient) reference for finding prime numbers if you need it:

    int upperLimit = 30; //Set your upper limit here
    System.out.println(2);
    for(int i = 2; i < upperLimit; i++)
        for(int j = 2; j < i; j++)
            if(i % j == 0 && i != 2)
                break;
            else if(j == i - 1)
                System.out.println(i);

Upvotes: 0

Guru
Guru

Reputation: 1893

In the second part

if(number%i == 0)

% usually gives you a remainder if there is.

eg 5 % 2 gives 1

4 % 2 gives 0

for(int i=2; i<number; i++)

Here you are looping through from 2 to the number. Since all numbers are divisible by 1 you start from 2. Also you stop before number (number -1) since you dont want to check if the number is divisible by itself (because it is).

If a number is divisible by any other number other than 1 and itself (number from 2 to number -1) then it is not a prime number.

Upvotes: 0

nlopez
nlopez

Reputation: 351

I guess that what you mean by second part is the isPrime method.

What he is doing is using '%' operator which returns the integer remainder of the division between 'number' and 'i'. As a prime number is just divisor for itself and the number 1, if the remainder is 0 it means is not a prime number. Your teacher is looping with the 'i' variable until the limit number and checking if any of the numbers is prime by looking the result of the % operation.

Hope this is helpful for you!!

Upvotes: 2

Related Questions