Ja das mit dem Array war so mein letzter noch nicht ausgebauter Gedanke, wollte einfach ein paar Zahlen generieren und diese in einen Array auslagern und wenn ich eine bräuchte hätte ich eine da raus genommen. Hab es jetzt aber auch hin bekommen und zwar so Zeile 6:
Code:
for(Primzahl_Frage;Primzahl_Frage<Primzahl_Test_Gesamt_n;Primzahl_Frage++)
{
int h=1;
while(Versuche_k<=Versuche_Gesamt||Zeugen_nicht_Primzahl_a<=(Primzahl_Frage-1)*0.5)
{
Zufallszahl_z=rand()%(Primzahl_Frage - 1)+1;
cout<<Zufallszahl_z<<"=Zufall Zeile 56"<<endl;
if(ggT(Zufallszahl_z,Primzahl_Frage)==1)
{
cout<<"ggT=1 von z und n; Zeile 58"<<endl;
Versuche_k++;
}
else
{
cout<<"ggT>1 von z und n; Zeile 63"<<endl;
Zeugen_nicht_Primzahl_a++;
};
cout<<"Runde vorbei Zeile 66"<<endl;
h++;
};
if(Versuche_k>=Versuche_Gesamt)
{
cout<<Primzahl_Frage<<" ist eine Primzahl"<<endl;
};
if(Zeugen_nicht_Primzahl_a>=(Primzahl_Frage-1)*0.5)
{
cout<<Primzahl_Frage<<" ist keine Primzahl"<<endl;
};
}; Es klappt zwar noch nicht das Hauptproblem mit den Primzahlen, aber das dürfte denk ich kein Problem mehr sein.
Wenn wir schon mal bei Array´s sind, kannst du mir vielleicht erklären warum es bei folgenden Ding zu einen Stack Overflow kommt:
Code:
void main()
{
int Zahl[260000],j=0,o=2,Max=30,Min=0;
for(int k=Min;k<Max;k++) // Zahlen einlesen lassen
{
Zahl[k]=k+2;
};
cout<<"Mit Enter Primzahlen ausgeben lassen"<<endl;
cin.get();
clock_t t1,t2;
t1=clock();
while(j<Max*0.5) // Hauptschleife zur Prüfung ob die letzte Zahl!=0 kleiner Max/2 ist
{
for(int i=2;i<sqrt(Max);i++)
{
for(j=i-2;j<Max;j=j+i)
{
Zahl[j]=0;
};
};
};
cout<<2<<endl;
cout<<3<<endl;
for(int u=0;u<Max;u++) // Zahlen die noch ungleich 0 sind auf dem Bildschirm ausgeben
{
if(Zahl[u]!=0)
{
cout<<Zahl[u]<<endl;
};
};
t2=clock();
float tdiff=(float)(t2-t1)/CLOCKS_PER_SEC; // Dauer des Algo´s ausgeben:)
cout<<tdiff<<endl;
cin.get();
}; Ich kann es nur daran erklären, dass das Array einfach überfüllt ist, aber bei anderen Programmen wie Matlab kann ich Array erstellen die um einiges größer sind, warum?
MfG
Stefan