Prime Number GeneratorIn mathematics, a prime number (or a prime) is a natural number that has exactly two distinct natural number divisors: 1 and itself. The first twenty-five prime numbers are: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 An infinitude of prime numbers exists, as demonstrated by Euclid around 300 BC, though the density of prime numbers within natural numbers is 0. The number 1 is by definition not a prime number. The fundamental theorem of arithmetic establishes the central role of primes in number theory: any nonzero natural number n can be factored into primes, written as a product of primes or powers of different primes (including the empty product of factors for 1). Moreover, this factorization is unique except for a possible reordering of the factors.

<!Prime Number Generator Program

The following program shows how to generate Prime Numbers up to a given number. It also prints how many prime numbers are being generated up to that given number.
package com.livrona.snippets.numbers;
/**
 * A simple snippet that generates and prints the prime number up to a given max.
 * /
public class PrimeNumberGenerator {

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

		if (args.length != 1) {
			System.out
					.println("Usage: java com.livrona.snippets.numbers.PrimeNumberGenerator <Max Number>");
			System.exit(0);
		}

		// store args
		String maxPrimeNo = args[0];

		System.out.println("Generate Prime Numbers up to : " + maxPrimeNo);

		// invoke the method
		try {
			generatePrimes(new Integer(maxPrimeNo).intValue());
		} catch (Exception e) {
			System.out.println("Failed to generate the Fabonacci: "
					+ e.getMessage());
			e.printStackTrace();
		}

	}

	/**
	 * Generate the Prime no, up to a max number.
	 * @param maxNum
	 */
	private static void generatePrimes(int maxNum) {
		// http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
		// initially assume all integers are prime
		boolean[] isPrime = new boolean[maxNum + 1];
		for (int i = 2; i <= maxNum; i++)
			isPrime[i] = true;

		// mark non-primes <= N using Sieve of Eratosthenes
		for (int i = 2; i * i <= Math.sqrt(maxNum); i++) {
			// if i is prime, then mark multiples of i as nonprime
			if (isPrime[i]) {
				for (int j = i; i * j <= maxNum; j++)
					isPrime[i * j] = false;
			}
		}
		// count primes
		int primes = 0;
		for (int i = 2; i <= maxNum; i++)
			if (isPrime[i]) {
				System.out.println("Prime - " + i);
				primes++;
			}
		System.out.println("The number of primes <= " + maxNum + " is "
				+ primes);

	}
}
 

Program Output

Generate Prime Numbers up to : 100 Prime - 2 Prime - 3 Prime - 5 Prime - 7 Prime - 11 Prime - 13 Prime - 17 Prime - 19 Prime - 23 Prime - 25 Prime - 29 Prime - 31 Prime - 35 Prime - 37 Prime - 41 Prime - 43 Prime - 47 Prime - 49 Prime - 53 Prime - 55 Prime - 59 Prime - 61 Prime - 65 Prime - 67 Prime - 71 Prime - 73 Prime - 77 Prime - 79 Prime - 83 Prime - 85 Prime - 89 Prime - 91 Prime - 95 Prime - 97 The number of primes <= 100 is 34