Here’s a seive to find composites .It works fine if I input <=19000 but for bigger values the program doesn’t work…
Is there any problem with vector…although vector max size is much bigger.But why it collapses?Then
I’m really in a fix what to do…What container is best to store very large data…
I don t want to use array .It just kills space …
What container ll be best for this ?
and do i need to use any other data structure to get big space?
Thanks
Your program, rather the logic, is wrong. It marks squares of prime numbers greater than 4 as prime itself.
That is, numbers like 25
(=5
2
), 49
(=7
2
), 121
(=11
2
), 169
(=13
2
), ...
are not printed in this list.
Please check your program for this. And I think, your vector
is OK.
This is Sieve of Eratosthenes, isn’t it? Please re-check the implementation’s correctness. Here is how it is done (in pseudocode).
1 Like
Oh! It seems that, not just the squares, but all the powers of primes greater than 4 are getting marked as prime. 125
(=5
3
) is missing. So is 343
(=7
3
) and 625
(=5
4
) and 1331
(=11
3
) and a lot more.
1 Like
Thanks a lot for your help
everything seems okay with 2,3 but i’ve marked 5 as prime simply in the loop and c should increment (when it reaches 5[no reason to not to reach]5*5=25)…I dont get where i ve made mistake…same with powers of 7,11,13 …
I’ve corrected the code But still see,after 32000 no composites are printed and i also got a run -time error… Can you help me in this …Why actually i cant get all composites printed.
Hi, your program is correct.
If you look at the input/output description (in your ideone code), you are getting a runtine error (SIGXFSZ
). This just means, you have exceeded the allowable output file size on ideone.
If you run this on your machine, you will get your complete output.
As a proof of what i said, when you are displaying output, just displaying the number (without any messages like “10th composite is:
”) will show results upto about 14200
.
So, YOUR PROGRAM IS CORRECT! Cheers!
1 Like
Thanks man,You helped a lot