Hallo leute ich habe folegendes Problem, und zwar hab ich hier ein Programm, was mir die Primzahlen bis zu einer angegebenen Obergrenzen ausgeben soll.
Mein Problem ist, das er nicht die Primzahlen ausgibt sondern er zählt einfach alle Zahlen auf. Wo könnte der Fehler sein, hab ihr da villeicht ne Ahnung ?
Source:
Mein Problem ist, das er nicht die Primzahlen ausgibt sondern er zählt einfach alle Zahlen auf. Wo könnte der Fehler sein, hab ihr da villeicht ne Ahnung ?
Source:
Code:
#include <iostream>
#include <iomanip>
using namespace std;
bool inarray(int n, int dim, int *arr){
for(int i=0; i<dim; i++){
if(n == *(arr+1))
return true;
}
return false;
}
void main(){
int* S;
int N;
int p = 2;
int dim,i,o;
int index=1;
int aktion;
cout <<"\n\nUm das Programm zu Starten ";
system("Pause");
cout <<"\n\n";
{
cout << "Bis zu welcher oberen Grenze sollen die Primzahlen berechnet werden ?\n";
cin >> N;
dim = N*N;
S = new int[dim];
for(i=0; i<dim; i++)
S[i] = 0;
S[0] = 1;
while(p*p <= N){
for(int i=2; i<=N; i++,index++)
S[index] = i*p;
do{
p++;
}while(inarray(p,dim,&S[0]));
}
o=0;
for(i=1; i<=N; i++){
if(!inarray(i, dim, &S[0])){
cout << setw(4) << i;
o++;
cout << ((o % 10 == 0) ? "\n": " ");
}
}
}
cout <<"\n\nEnd of Programm: ";
system("Pause");
cout <<"\n\t\t ";
}
Zuletzt bearbeitet: