Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Sieb des Erastosthenes

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.05.2005, 20:12 Uhr
~flashbrain
Gast


Ich soll hier ne Liste mit Primzahlen herstellen und hab das Programm auch schon geschrieben aber irgendwo scheint ein Fehler zu sein...Ich sitz da seit Stunden dran und find ihn nicht ! Vielleicht könnt ihr mir ja helfen...

C++:
#include <iostream>
using namespace std;

#include <math.h>

int main ()
{
  int N, i, n, feld[N], x;
  cout << "Geben Sie eine Zahl ein bis zu der alle Primzahlen ermittelt werden sollen!" << endl;
  cin >> N;
  for (i=0; i<0; i++)
  {
    feld[i] = i;
  } // Felder eingerichtet

  feld [1] = 0;
  for (int n=2; n <= pow(N,1/2); n++)
  {
    if ( feld[n] != 0)
    {
      for (int i = n*n; i <= N; i++)
      {
        if ( i%n == 0) // Falls teilen durch n restlos erfolgt
        {
          feld[n] = 0;
        }
      }
    }
  }

  cout << "Foldende Primzahlen befinden sich zwischen 1 und " << N << ":" << endl;
  for (int i=1; i<=N; i++)
  {
    cout << feld[i];
    if (i%10 == 0)
    {
      cout << endl;
    }
  }
  cin >> x;
  return 0;
}



Bearbeitung von 0xdeadbeef:

tags eingefügt, code eingerückt. Nächstes mal selbst machen.


Dieser Post wurde am 24.05.2005 um 20:40 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.05.2005, 20:28 Uhr
~Pler(2)
Gast



Code:
int N, i, n, feld[N], x;



feld[N] geht meiner Meinung nach nicht, was soll das sein?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.05.2005, 20:31 Uhr
~Pler(2)
Gast


Wenn du dann noch das "int" jeweils in den beiden for-schleifen wegnimmst, lässt es sich schon mal kompilieren.
Man kann Variablen nicht innerhalb eines Blocks mehrmals deklarieren ( hier der Block von main )

Ich find es sowieso nicht schön "int" in die Schleife zu schreiben, alle Var. die man benötigt sollten am Anfang deklariert werden.
( find ich )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.05.2005, 20:48 Uhr
0xdeadbeef
Gott
(Operator)



C++:
#include <iostream>
#include <vector>

using namespace std;

int main() {
  size_t N, i = 2;

  cout << "Bis zu welcher Zahl? ";
  cin >> N;

  vector<bool> sieb(N + 1, true);
  sieb[0] = sieb[1] = false;
  while(i <= N) {
    for(size_t j = 2 * i; j <= N; j += i) {
      sieb[j] = false;
    }
    while(!sieb[++i]);
  }

  for(i = 2; i <= N; ++i) {
    if(sieb[i]) {
      cout << i << endl;
    }
  }
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: