Click here to Skip to main content
15,125,104 members
Home / Discussions / C#
   

C#

 
GeneralRe: Sieve of Eratosthenes Pin
WebMaster12-Sep-12 5:59
MemberWebMaster12-Sep-12 5:59 
GeneralRe: Sieve of Eratosthenes Pin
J4amieC12-Sep-12 6:02
MemberJ4amieC12-Sep-12 6:02 
GeneralRe: Sieve of Eratosthenes Pin
Manfred Rudolf Bihy12-Sep-12 6:06
professionalManfred Rudolf Bihy12-Sep-12 6:06 
GeneralRe: Sieve of Eratosthenes PinPopular
J4amieC12-Sep-12 6:07
MemberJ4amieC12-Sep-12 6:07 
GeneralRe: Sieve of Eratosthenes Pin
Pete O'Hanlon12-Sep-12 6:04
mvePete O'Hanlon12-Sep-12 6:04 
GeneralRe: Sieve of Eratosthenes Pin
WebMaster12-Sep-12 6:16
MemberWebMaster12-Sep-12 6:16 
GeneralRe: Sieve of Eratosthenes Pin
Pete O'Hanlon12-Sep-12 6:22
mvePete O'Hanlon12-Sep-12 6:22 
GeneralRe: Sieve of Eratosthenes PinPopular
J4amieC12-Sep-12 6:23
MemberJ4amieC12-Sep-12 6:23 
See how point 2 is different from your implementation, and how the description of point 3 is TOTALLY different from your implementation

By way of example I mocked up 2 implementations. The first uses your code:

static void Brute(int max)
{
    var numbers = new List<Number>();
    for (int i = 2; i < max; i++)
        numbers.Add(new Number(i));

    var sw = new Stopwatch();
    sw.Start();
    for (int i = 0; i < numbers.Count - 1; i++)
        if (numbers[i].IsPrime)
            for (int j = i + 1; j < numbers.Count - 1; j++)
                if (numbers[j].Value % numbers[i].Value == 0)
                    numbers[j].IsPrime = false;

    sw.Stop();
    Console.WriteLine("Brute: {0}ms",sw.ElapsedMilliseconds);
}


I reduced it to only going to 200000, as it took too long to go all the way to 20000000 for the purpose of this demo:

Result:
Brute: 152009ms


Then I mocked up a very quick Sieve implementation without the enhancements that can be made (described in the wiki article)

-- Code example removed. If this is homework, im not doing it for you.

Result:
Sieve:15ms


The proof, as they say, is in the pudding. In this case Sieve pudding is ready just a little bit quicker
GeneralRe: Sieve of Eratosthenes Pin
WebMaster12-Sep-12 6:48
MemberWebMaster12-Sep-12 6:48 
GeneralRe: Sieve of Eratosthenes Pin
J4amieC12-Sep-12 6:59
MemberJ4amieC12-Sep-12 6:59 
GeneralRe: Sieve of Eratosthenes Pin
WebMaster12-Sep-12 7:11
MemberWebMaster12-Sep-12 7:11 
GeneralRe: Sieve of Eratosthenes Pin
Rage12-Sep-12 7:23
professionalRage12-Sep-12 7:23 
GeneralRe: Sieve of Eratosthenes Pin
Pete O'Hanlon12-Sep-12 7:25
mvePete O'Hanlon12-Sep-12 7:25 
AnswerProper implementation of Sieve of Eratosthenes Pin
Clifford Nelson12-Sep-12 11:45
MemberClifford Nelson12-Sep-12 11:45 
GeneralRe: Proper implementation of Sieve of Eratosthenes Pin
WebMaster12-Sep-12 12:00
MemberWebMaster12-Sep-12 12:00 
AnswerRe: Proper implementation of Sieve of Eratosthenes Pin
Clifford Nelson12-Sep-12 12:20
MemberClifford Nelson12-Sep-12 12:20 
GeneralRe: Proper implementation of Sieve of Eratosthenes Pin
Dave Kreskowiak12-Sep-12 13:44
mveDave Kreskowiak12-Sep-12 13:44 
GeneralRe: Proper implementation of Sieve of Eratosthenes Pin
Clifford Nelson12-Sep-12 14:07
MemberClifford Nelson12-Sep-12 14:07 
GeneralRe: Proper implementation of Sieve of Eratosthenes Pin
Dave Kreskowiak12-Sep-12 19:25
mveDave Kreskowiak12-Sep-12 19:25 
AnswerRe: Sieve of Eratosthenes Pin
Thomas Daniels12-Sep-12 6:29
mvaThomas Daniels12-Sep-12 6:29 
AnswerRe: Sieve of Eratosthenes Pin
Kenneth Haugland13-Sep-12 4:33
professionalKenneth Haugland13-Sep-12 4:33 
AnswerRe: Sieve of Eratosthenes Pin
PIEBALDconsult12-Sep-12 15:23
professionalPIEBALDconsult12-Sep-12 15:23 
QuestionSubstitution of Paths in HyperLinkField with File Names Pin
ASPnoob12-Sep-12 5:23
MemberASPnoob12-Sep-12 5:23 
AnswerRe: Substitution of Paths in HyperLinkField with File Names Pin
Pete O'Hanlon12-Sep-12 5:55
mvePete O'Hanlon12-Sep-12 5:55 
GeneralRe: Substitution of Paths in HyperLinkField with File Names Pin
ASPnoob12-Sep-12 10:59
MemberASPnoob12-Sep-12 10:59 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.