Dienstag, 5. Oktober 2010

kleine Idee: Primzahlen Genrator

    class PrimeGenerator
    {
        private System.Collections.ArrayList p_ar; //lineare Liste mit Primzahlen
        private int n; //fortlaufende Zahl zur Primzahlen Bildung

        //überprüft zahl ob primzahl
        private Boolean isPrime(int p)
        {
            int t = p / 2; //größter möglicher Teiler

            if (!isPrime(t))
            {
                int i;
                for (i = 0; i < p_ar.Count && (int)p_ar[i] < t; i++)
                    ;
                t = (int)p_ar[i];
            }

            for(int j = 0; (int)p_ar[j] <= t; j++)
                if(p % (int)p_ar[j] == 0)
                    return false;

            return true;
        }

        public PrimeGenerator()
        {
            p_ar = new System.Collections.ArrayList();
            p_ar.Add(3);
            n = 2;
        }

        public int next()
        {
            int prim = 2 * n + 1;
            n++;

            while (!isPrime(prim))
            {
                prim = 2 * n + 1;
                n++;
            }

            p_ar.Add(prim);

            return prim;
        }
    }

Geschrieben wurde das Programm in C# ich garantiere nicht für Funktionalität

Keine Kommentare:

Kommentar veröffentlichen