Primzahl ermitteln

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von G3neral, 25. April 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 25. April 2006
    hi
    ich muss für die schule eim programm schreiben, mit dem man primzahlen erkennen kann.ich hab keine ahnung wie ich das mir der teilermenge hinbekommen soll und ich finde auch keinen anfangspunkt.
    10ner für hilfe iss natürlich ehrensache
    gruß g3neral
     
  2. 25. April 2006
    ich kann zwar nur VB aber vllt kann ich dir von der struktur her helfen..
    anmrkung: i ist hierbei die zahl bei der du überprüfen willst ob sie eine Primzahl ist...
    Musst du mit einer Schleife machen, die schleife geht von 2 zu i * 0.5 , dann teilst du i durch jede zahl der schleife ( also i/2, i/3, i/4.. usw), wenn bei allen eine kommazahl rauskommt hast du eine Primzahl...
     
  3. 25. April 2006
    und wie ist das, wenn die zahl nur noch durch eine andere zahl teilbar ist? z.b 23 o.Ä.
     
  4. 25. April 2006
    Ist zwar nicht so schön, aber dürfte klappen.
    Die Punkte musst du noch rausmachen, die hab ich nur reingepackt, weil sonst die Leerzeichen gekillt würden.

    Greetz
     
  5. 25. April 2006
    Hi,

    Die Funktion müsste funktionieren:

    Code:
    
    Private Function GetPrimzahlen(BisZahl As Integer) As String
     Dim keinePrim As Boolean
     Dim m As Integer
     Dim n As Integer
     Dim t As Integer
     Dim Primzahlen As String
     
     'Herausfiltern der Primzahlen
     'Alle ungeraden Zahlen durchzählen
     For n = 3 To BisZahl Step 2
     keinePrim = False
     m = n - 1
     'Testen ob die Zahl einen Teiler hat.
     For t = 3 To m Step 2
     If n Mod t = 0 Then
     'Zahl hat einen Teiler, also keine Primzahl
     keinePrim = True
     Exit For
     End If
     Next t
     m = n + 1
     If Not keinePrim Then _
     Primzahlen = Primzahlen & " " & n
     Next n
     GetPrimzahlen = Primzahlen
    End Function
    Die Zahlen werden durch ein Leerzeichen getrennt zurückgegeben (Kannste ja dann mit Split aufspalten)


    Sorry, hab das Prefix übersehen, obige funktion is für VisualBasic
     
  6. 25. April 2006
    dann ist sie ja keine primzahl
     
  7. 25. April 2006
    Es reicht dann übrigens nur die ungeraden Zahlen auf Primzahl zu testen (bis auf die Zahl 2, die auch eine Primzahl ist), da alle anderen logischerweise durch 1, 2 und sich selbst teilbar sind - und somit keine Primzahl. Weiterhin braucht man den Teiler nur bis zur Wurzel der zu überprüfenden Zahl zu testen (abgerundet)(z.B. die Zahl 73 also nur bis 8, die 117 bis 10) - allerdings bin ich mir nicht mehr ganz sicher warum das so war. Diese Maßnahmen machen den Code schneller wenn man große Anzahlen von Primzahlen sucht.
     
  8. 25. April 2006
    hmm wenn es ein prog gibt das erkennt ob eine zahl ne primzahl is, dann müsst es doch ein prog geben was dir alle primzahlen auswerfen kann oder?
    und ich bin mir sicher das es ein solches prog noch nicht gibt.

    im prinzip musst für dein problem ein prog schreiben das kontrolliert ob die zahl durch 2 oder andere primzahlen teilbar ist.
    oder du kontrollierst ob es eine kleinere zahl gibt die bei der lösung keinen kommawert hat. unsinnig bei großen (wirklich großen zahlen) ^^


    ich kann mich auch irren. da meine erinnerung an so ne geschichte schon etwas in die jahre gekommen is
     
  9. 25. April 2006
    Für alle die das Thema der Berechnung von Primzahlen interessiert gibt es reichlich Links. Hier eine zu nem Typen, der sich Gedanken darüber gemacht hat wie man das möglichst schnell machen kann.

    http://www.codeproject.com/csharp/highspeed_primenumbers.asp
     
  10. 25. April 2006
    Naja, nur leider is dein Code in C# und der USEr sucht nen Code für Delphi
     
  11. 25. April 2006
    danke für eure hilfe 10ner sind an alle raus!!
    gruß g3neral

    also
    ~Close~
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.