Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Primzahlen Matlab

 

Berger1012
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 12.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.12.2018, 18:17     Titel: Primzahlen Matlab
  Antworten mit Zitat      
Servus,
ich habe aktuell eine ganz verzwickte Aufgabe in Matlab zu lösen. Ich soll eine Anzahl von Primzahlen eingeben und dann soll das Programm anzeigen, wie viele Zahlen es bis zu dieser Anzahl sind.

Beispiel:
Anzahl von Primzahlen: 3
Ergebnis: 5 (1,2,3,4,5 -> 2,3,5 sind die 3 Primzahlen)

Ich habe bereits mit Primzahlen gearbeitet aber so herum weiß ich absolut nicht wie das Ganze Funktionieren soll.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 19.396
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 16.12.2018, 19:41     Titel:
  Antworten mit Zitat      
Hallo,

die einfachste Möglichkeit:
bei 2 anfangend jede Zahl testen, ob sie eine Primzahl ist (im Zweifelsfall mit isprime ), und aufhören, wenn man die gewünschte Anzahl Primzahlen gefunden hat.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 10.792
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.12.2018, 13:01     Titel: Re: Primzahlen Matlab
  Antworten mit Zitat      
Hallo Berger1012,

Bitte poste eine Frage immer nur einmal. "Double posts" verwirren die Leser und vergeuden Zeit, wenn man eine Antwort tippt, die an anderer Stelle schon einmal gegeben wurde. Danke!

Zitat:
Ich soll eine Anzahl von Primzahlen eingeben und dann soll das Programm anzeigen, wie viele Zahlen es bis zu dieser Anzahl sind.

Oder in anderen Worten: Wie groß ist die die n-te Primzahl?

Du könntest die grobe Abschätzung gebrauchen, dass bis x etwa x/log(x) Primzahlen existieren (Suche im Netz einfach mal nach "wie groß ist die n.te primzahl"). Wähle dann eine etwas größere Zahl zur Sicherheit. Nun kannst Du entweder isprime oder besser das Sieb des Eratosthenes verwenden, um die Primzahlen zu finden und abzuzählen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Berger1012
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 12.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2018, 14:09     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

die einfachste Möglichkeit:
bei 2 anfangend jede Zahl testen, ob sie eine Primzahl ist (im Zweifelsfall mit isprime ), und aufhören, wenn man die gewünschte Anzahl Primzahlen gefunden hat.

Grüße,
Harald


Zuerst einmal vielen vielen Dank für deine Antwort. Wie genau funktioniert dann das Ganze dass ich bis zu den n Primzahlen hochzählen kann? Ich habe bisher leider nur mit fest definierten Matrizen gearbeitet und habe keine Ahnung wie ich die Zahlen bis zu einem bestimmten Wert hochzählen lassen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 19.396
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 17.12.2018, 14:21     Titel:
  Antworten mit Zitat      
Hallo,

z.B. mit einer while-Schleife
Code:
nFound = 0;
currentNumber = 1;
nTarget = 3;
while nFound < nTarget
    currentNumber = currentNumber + 1;
    if isprime(currentNumber)
        nFound = nFound + 1;
    end    
end
currentNumber


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Berger1012
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 12.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2018, 16:32     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

z.B. mit einer while-Schleife
Code:
nFound = 0;
currentNumber = 1;
nTarget = 3;
while nFound < nTarget
    currentNumber = currentNumber + 1;
    if isprime(currentNumber)
        nFound = nFound + 1;
    end    
end
currentNumber


Grüße,
Harald


Vielen Dank! Hat super funktioniert. Du hast mir den Tag gerettet Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.



goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2019 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.