aspose file tools*
The moose likes Beginning Java and the fly likes How many prime Exist between two numbers? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "How many prime Exist between two numbers?" Watch "How many prime Exist between two numbers?" New topic
Author

How many prime Exist between two numbers?

Niloo Rad
Greenhorn

Joined: Oct 17, 2012
Posts: 10
I have to count, how many prime numbers exist, but it give me wrong answer: Exactly 1254 prime numbers exist between 1 and 10,000.

can you tell me why? Thank you!




Result:

Exactly 1254 prime numbers exist between 1 and 10,000.
Winston Gutkowski
Bartender

Joined: Mar 17, 2011
Posts: 7081
    
  16

Niloo Rad wrote:something is wrong with my code and i can't figure it out! will you help me to find it?

Well, you haven't given us all of it. Where is MAX_PRIME defined? Without that and your isPrime() method, it's a bit tough to work out exactly what's wrong.

However, there is one simple optimization: you DON'T have to check every number.
In fact, (tip) ALL primes greater than 3 are equal to 6k ± 1, where k is a positive integer.

Winston


Isn't it funny how there's always time and money enough to do it WRONG?
Artlicles by Winston can be found here
Niloo Rad
Greenhorn

Joined: Oct 17, 2012
Posts: 10
JUST UPDATED MY CODE
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 36592
    
  16
Niloo Rad wrote:JUST UPDATED MY CODE


Don’t That makes Winston’s reply look nonsense. It means nobody can work out the changes. Please repost the original code and a new post with the changes. And read this.
Roger Wolfenden
Greenhorn

Joined: Oct 08, 2012
Posts: 20
How about this...

[complete solution removed]
Winston Gutkowski
Bartender

Joined: Mar 17, 2011
Posts: 7081
    
  16

Niloo Rad wrote:JUST UPDATED MY CODE

And I'm afraid it's still wrong. What does isPrime(49), or indeed isPrime(9), return?

Winston
Roger Wolfenden
Greenhorn

Joined: Oct 08, 2012
Posts: 20
@Winston would you like to elaborate on what is wrong with the code?
  • isPrime(9) = 29
  • isPrime(49) = 229


  • Interesting too, I notice that my code has been removed by @Winston. I'm just wondering why. Have I broken some code of etiquette?

    [Edit by Winston] See below.
    Winston Gutkowski
    Bartender

    Joined: Mar 17, 2011
    Posts: 7081
        
      16

    Roger Wolfenden wrote:How about this...

    Hi Roger.

    I'm sure your motives were great, but we don't like people to post ready-made solutions here - particularly in the 'Beginners' forum.
    It's much better to guide someone to their own solution. Please read the NotACodeMill (←click) page.

    I've kept your original post, and if my colleagues ask me to, I'll restore it.

    Thanks.

    Winston
    Winston Gutkowski
    Bartender

    Joined: Mar 17, 2011
    Posts: 7081
        
      16

    Roger Wolfenden wrote:@Winston would you like to elaborate on what is wrong with the code?
  • isPrime(9) = 29
  • isPrime(49) = 229

  • I was referring to Niloo's code, not yours, and specifically to his isPrime() method.

    Winston
    Roger Wolfenden
    Greenhorn

    Joined: Oct 08, 2012
    Posts: 20
    OK @Winston understand and accept your logic.

    FYI, I too am a newbie but quite liked the, "Let's find all the primes between 0 and 1000 challenge." Hence my code.
    Winston Gutkowski
    Bartender

    Joined: Mar 17, 2011
    Posts: 7081
        
      16

    Roger Wolfenden wrote:OK @Winston understand and accept your logic.

    No probs. And please, feel free to help. We just don't like beginners to be spoon-fed.

    Winston
    Wendy Gibbons
    Bartender

    Joined: Oct 21, 2008
    Posts: 1106

    so you pass in 3 numbers assign them to variables with very bad names a,b,c so we have no idea what you intended to do with them, you then do nothing with them.

    the controlling loop in countPrimes always goes from 2 to MAX_PRIME.

    this is just a nice layout thing...
    you do not need to indent the validation try catch blocks within each other



    Campbell Ritchie
    Sheriff

    Joined: Oct 13, 2005
    Posts: 36592
        
      16
    This sounds like a project Euler question. Is it?
    I would suggest you create an array and use a sieve of Eratosthenes to work out whether each number is prime. Then count the primes. 0 and 1 don’t count. Much more effecient than an isPrime method.
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: How many prime Exist between two numbers?
     
    Similar Threads
    problem with java code
    Array Comparison doesnt appear to be working
    I implemented runnable.... I think...
    problem in prime numbers using an array
    Java vs. Perl (Speed)