PlummersSoftwareLLC / Primes

Prime Number Projects in C#/C++/Python
https://plummerssoftwarellc.github.io/PrimeView/
2.44k stars 575 forks source link

PrimeJava counting small numbers as prime #868

Closed LegendPhoenix66 closed 1 year ago

LegendPhoenix66 commented 1 year ago

9 was counted as prime as long as the sieveSize was between 9 and 15. If sieveSize is lower that 9, 8 can count as prime. Have not tryed lower that 8

rbergen commented 1 year ago

Hi @LegendPhoenix66, thanks for reporting this. The Java language has 4 solutions defined. Which of those does the issue concern?

LegendPhoenix66 commented 1 year ago

looks like I somehow got an old version where there was only one Java solution. I just tested it in the current versions. With sieveSize 10 in the 3rd Solution it's still the case. I also found a problem in solution 2 where printf has %d but the argument is String.valueOf(num). And I would maybe replace \n with %n in String formats

rbergen commented 1 year ago

I see that PrimeJava/solution_3 indeed performs a "less than" (<) comparison to the square root of the sieve size, instead of a "less than or equal to" (<=) comparison.

However, as none of the points you mention impact the solutions' accuracy or performance in the context of the actual drag race (where the sieve size is 1,000,000), they do not represent an issue in the context of this repo. You can open (a) PR(s) to propose the changes you suggest to the solutions they concern, if you want to do so. Otherwise, I will convert this issue to an improvement suggestion discussion. I'd like to note that the chances of the solutions' contributors responding to your findings will increase if you tag them in your post.