This week's book giveaway is in the OCMJEA forum.
We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes prime numbers -please help Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCM Java EE 6 Enterprise Architect Exam Guide this week in the OCMJEA forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "prime numbers -please help" Watch "prime numbers -please help" New topic
Author

prime numbers -please help

catherine matthews
Ranch Hand

Joined: Jan 22, 2006
Posts: 78
//My aim is to find prime numbers from 1 to 100. Here i have done what i could think

//of. //But i could not get the answer. Please let me know where i am wrong.

Keith Lynn
Ranch Hand

Joined: Feb 07, 2005
Posts: 2367
What is your reasoning behind this?

Raj Kumar Bindal
Ranch Hand

Joined: Apr 15, 2006
Posts: 418
public class A
{
[deleted by FBR]
}
This is the correct code.
[ February 12, 2007: Message edited by: Fred Rosenberger ]
Peter Chase
Ranch Hand

Joined: Oct 30, 2001
Posts: 1970
The code of Raj Kumar Bindal looks like it probably works, but it might not be the best code, depending what you are trying to achieve. It hard-codes the fact that the upper limit is 100. If you wanted a different limit, you'd need to rewrite the code and recompile. Lastly, if you're allowed to assume the primes between 1 and 10 (and I'm not sure all teachers/examiners would allow this), then why not just assume the values between 1 and 100, and just write a load of println() statements!

Perhaps a good exercise would be to work out what Raj is doing, then to re-code it more flexibly so that it would work for any upper limit. Then you have written a real, useful program.

(The "continue" is unnecessary, too. Just use != and && in the condition instead.)
[ February 12, 2007: Message edited by: Peter Chase ]

Betty Rubble? Well, I would go with Betty... but I'd be thinking of Wilma.
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18765
    
  40

Another minor mathematical complaint about the program... one is not a prime number.

Henry


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 11257
    
  16

I have deleted the solution provided by Raj Kumar Bindal. We'd much rather help people figure out how to code than just hand them a solution.


There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 11257
    
  16

The simplest (and possibly least efficient) way to test a number for being prime is to divide it by every number less than itself. if any return a 0 remainder, the number is not prime.

I'd suggest starting off writing that code. pick a number, say 91. write a loop that tests the remainder for every possible number from 2 to 90. set a boolean before you start, something like isPrime = true;. then, if you ever get a 0 remainder, set it to false.

after you check all the possible numbers, and exit the loop, use your boolean for printing prime/not prime.

I'd put all that code into a method.

Then, change the method so that instead of being hard-coded to testing 91, you can pass it a value to test. Write your main to pass it 91, then call it again with 17 then again with 48.

Then, write a loop that would call that method, passing in the values from 2 to 100 (or whatever).

Note that once you have it working, you can start tweaking the method that checks for primality without effecting anything else. Keep the original copy of the method, and make a primeCheck2() method. tweak that one - maybe you only need to check to up to 1/2 the original number. or maybe only up to the sqaure root.

maybe you could keep a list of the primes you've found, and only divide by those...

the point is that you want to separate out the different parts of your code. the prime-checking part should be completly separated from the "which number to check" part. which should be separate from the "get input from user and validate it" part...

These are some ideas to consider when writing your program.
Garrett Rowe
Ranch Hand

Joined: Jan 17, 2006
Posts: 1296
A classic algorithm to solve this problem is aSieve of Eratosthenes. Maybe you could try your hand at implementing this in Java.


Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them. - Laurence J. Peter
catherine matthews
Ranch Hand

Joined: Jan 22, 2006
Posts: 78
Thank you all for your help...Atlast i manage to come out with a solution



If i need to find the number of prime numbers between 1-100 then i would need a outer loop.

Thanks ya.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
 
subject: prime numbers -please help