Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Primzahlen?

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
11.03.2005, 15:03 Uhr
Psus82



Ich habe mir schon die Threads zu diesem Thema angeschaut, bin aber leider daraus nicht schlau geworden.
Ich möchte ein Programm in C nicht C++ schreiben das eine Zahl als Eingabe fordert und dann alle Primzahlen von 0 bis zu dieser Zahl in einer Matrix ausgibt.
Die Matrix sollte auch Speicherbar sein.
Hat jemand vielleicht eine Idee?
Bin noch ein Newbee in C.

Psus82
--
Drei Dinge die Programmierer hassen:
1.)Frische sauerstoffreiche Luft
2.)Sonnenschein
3.)Das ätzende Geräusch zwitschernder Vögel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.03.2005, 15:08 Uhr
Th



Es gibt reichlich Beispiele im Netz zum "Sieb des Eratosthenes".
Ist zwar nicht der schnellste Algo, aber als Anfängerübung gut geeignet...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.03.2005, 15:43 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


äh noch eine kleine bemerkung dazu... 0 und 1 sind keine Primzahlen... es geht bei 2 los...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.03.2005, 19:06 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Einfaches Beispiel:

Du nimmst ein Array mit, sagen wir, 1000 Einträgen, alles mit 0 initialisiert, nur die Elemente 0 und 1 mit dem Wert 1. Später kann das Array auf dynamisch umgebaut werden, für den Anfang machs Dir einfach und nimm eine feste Obergrenze.
Jetzt gehst Du in einer Schleife die Zahlen von 2 bis 1000 durch. Schau Dir den jeweiligen Eintrag im Array an, und wenn er 0 ist, ist die Zahl (nennen wir sie n) eine Primzahl. Ausgeben, und in einer zweiten Schleife alle Vielfachen von n durchgehen. Für die 2 also 4, 6, 8, 10 usw. bis 1000. Jeden dieser Einträge setzt Du auf 1. Dann gehts mit der äußeren Schleife weiter...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.03.2005, 15:47 Uhr
0xdeadbeef
Gott
(Operator)



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

int main() {
  int max;

  std::cout << "Obergrenze: " << std::flush;
  std::cin >> max;

  std::vector<bool> sieb(max, true);

  sieb[0] = sieb[1] = false;
  sieb[2] = true;
  for(int i = 2; i < sieb.size(); ++i)
    if(sieb[i]) {
      std::cout << i << std::endl;
      for(int j = 2; i * j < sieb.size(); ++j)
        sieb[i * j] = false;
    }
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.03.2005, 16:04 Uhr
Bruder Leif
dances with systems
(Operator)


Hey, er sagte extra C, nicht C++
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.03.2005, 17:14 Uhr
0xdeadbeef
Gott
(Operator)


Das sollte sich ja ohne größere Probleme adaptieren lassen.
--
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: