 # Java Prime Number Calculator

2 replies to this topic

### #1 npsken

npsken

• • Members
• • 26 posts
• Gender:Male
• Interests:Computer Programming<br />Graphic Design

Posted 24 March 2009 - 11:17 AM

So I am making an example program to test myself that should find all prime numbers between two given numbers. I want to do this in an object oriented fashion.

I have a prime class with a check method, and a main class with a main method.

Here are my files:

prime.java
`/* * Prime Checker * Kenneth Powers *  * check() accepts a long integer and returns true or false as a boolean */public class prime{	boolean prime;		public boolean check(long n)	{		for(int i = 2; i < Math.sqrt((double)n); i++)		{			// set check to true for the first go			if(n==2)			{				prime = true;			}						// test for primeness			if(n%i==0)			{				prime = false;				break;			}		}		//Return The Result		if(prime == true)		{			return true;		} else {			return false;		}	}}`

main.java
`/* * This program will find all prime numbers between 2 given long integers *///Import Scannerimport java.util.Scanner;public class main{	/**	 * @param args	 */	public static void main(String[] args)	{		//Set up scanner		Scanner sc = new Scanner(System.in);				//Set up prime checker		prime p = new prime();				//Declare variables		long firstNumber, secondNumber;				//Get numbers from user		System.out.print("Enter the first number: ");		firstNumber = sc.nextLong();		System.out.print("Enter the second number: ");		secondNumber = sc.nextLong();				//Start crunching (alright! (borat))		System.out.println("It's HAMMER TIME!");		for(long i = firstNumber;  i < secondNumber; i++)		{			if(p.check(i))			{				System.out.println("Prime Number: " + i);			}		}		System.out.println("Done!");			}}`

Both files are in an eclipse project called PRIME1. No matter what I type, the output of the program is as follows:
`Enter the first number: 1Enter the second number: 10It's HAMMER TIME!Done!`

Does anybody know what is going on? How can I fix this?

### #2 rc69

rc69

PHP Master PD

• • P2L Staff
•    • 3,827 posts
• Gender:Male
• Location:Here
• Interests:Web Development

Posted 24 March 2009 - 12:03 PM

```/*
* Prime Checker
* Kenneth Powers
*
* check() accepts a long integer and returns true or false as a boolean
*/
public class prime
{
/* No need for boolean prime; explained later */
public boolean check(long n)
{
for(int i = 2; i < Math.sqrt((double)n); i++)
{
/* No need to check for n==2 as (2 < sqrt(2)) is always false */
// test for primeness
if(n%i==0)
{
/* Since 'n' isn't prime, just return, no need to take a break */
return false;
}
}

/* Provided 'prime' was still around, we could return it at this point.
But since it isn't, and we know the number is prime, return true. */
return true;
}
}```
Try the above. You can read my comments for what i changed/removed.

Also, moved to proper category.

p.s. Keep in mind that this is a brute-force algorithm. There are alternatives you can look at to speed this up if you were really interested (i.e. for those REALLY large numbers), but if i remember correctly, they aren't always 100% accurate.

Edited by rc69, 24 March 2009 - 12:04 PM.

### #3 unknown_gamer

unknown_gamer

• • Members
• • 52 posts
• Gender:Male
• Location:Internet =p

Posted 08 May 2009 - 09:08 AM

What I would do would be. Make a isPrime method(to determine if a number is prime), so while I am cycling through the numbers between 1-10 for example, it will tell me which are prime, and using an IF statement I will start to concatenate them into a string, then showing them as an output.

As simple as that.

#### 0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users 