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