Office: Primzahlen?? Hilfe!!

Helfe beim Thema Primzahlen?? Hilfe!! in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Also ich habe jetzt eine Funktion gemacht mit der ich Primzahlen ermitteln kann und ich gehe mal davon aus, dass sie stimmt...(siehe weiter unten...)... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von anfänger_engel, 8. April 2008.

  1. Primzahlen?? Hilfe!!


    Also ich habe jetzt eine Funktion gemacht mit der ich Primzahlen ermitteln kann und ich gehe mal davon aus, dass sie stimmt...(siehe weiter unten...)
    Mein eigentliches problem ist, wie kann ich die Funktion Prim() beschleunigen, indem nicht so viel unnütz gesucht wird?
    Muss bei der Untersuchung, ob 197 eine Primzahl ist, wirklich getestet werden, ob 196 ein Teiler ist?
    Wie groß kann der größte echte Teiler denn höchstens sein?
    Kann vielleicht noch ein bisschen „früher“ festgestellt werden, dass es gar keinen echten Teiler gibt und die Zahl daher eine Primzahl ist?

    Code:
     
    anfänger_engel, 8. April 2008
    #1
  2. Hallo!

    Die geänderten Stellen im Code sind fett markiert! Code:
     
    rastrans, 10. April 2008
    #3
  3. OfficeUser Neuer User

    Primzahlen?? Hilfe!!

    HAllo

    Du brauchst nur bis zur Ganzzahl der Wurzel zu testen.

    Dies hier habe ich vor einiger Zeit mal gebastelt.
    Schau es dir mal in aller Ruhe an...

    ' **********************************************************************
    ' Modul: prim Typ: Allgemeines Modul
    ' **********************************************************************

    Option Explicit

    Public Function primzahltest(zahl) As Boolean
    Dim wurzel
    Dim L
    Dim bol As Boolean
    bol = True
    wurzel = Int(Sqr(zahl))
    For L = 2 To wurzel
    If (zahl / L) = Int(zahl / L) Then
    bol = False
    Exit For
    End If
    Next
    primzahltest = bol
    End Function

    Function primfaktoren(zahl) As String
    Dim dummy As String
    Dim test As Double
    Dim wurzel As Double
    Dim pruefen
    test = zahl
    wurzel = WorksheetFunction.Power(zahl, 0.5)
    While primzahltest(test) = False
    For pruefen = 2 To wurzel
    If (test / pruefen) = Int(test / pruefen) Then
    dummy = dummy & pruefen & " * "
    test = test / pruefen
    wurzel = Sqr(test)
    Exit For
    End If
    Next
    Wend
    dummy = dummy & test
    primfaktoren = "=" & dummy
    End Function


    Der Aufruf in einer Tabelle geht dann so:
    Tabelle1

     ABC
    5123456FALSCH=2 * 2 * 2 * 2 * 2 * 2 * 3 * 643
    ZelleFormel
    B5=primzahltest(A5)
    C5=primfaktoren(A5)
    Excel Tabellen im Web darstellen >>
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    OfficeUser, 10. April 2008
    #4
  4. Hallo,

    Zahlen die größer als die Hälfte der zu prüfenden Zahl sind können keine Teiler dieser Zahl sein, daher
    Code:
     
  5. Hi Engel,

    im Grunde genommen genügen max. 10 Durchläufe, da jede Zahl, egal wir groß, sofern sie keine Primzahl ist, durch eine dieser Zahlen teilbar ist. Hier ein Bsp.:

    Code:
     
  6. HAllo RJ


    Hm...
    Das stimmt so nicht.
    Teste mit deinem Code z.B. mal die 121 oder die 391.

    ransi
     
  7. Primzahlen?? Hilfe!!

    Hallo!

    Bei nochmaligem Nachdenken und wälzen alter Studiumsunterlagen komme ich nun zu folgendem Code: Code:
    Wie hier schon erwähnt reicht sogar eine Schleife bis zur Ganzzahl der Wurzel. Dann benötigt man nicht einmal alle Werte.

    Viele Grüße
    rastrans
     
    rastrans, 10. April 2008
    #8
  8. 1. du brachst nur bis zur Wurzel der Zahl testen
    2. du brachst nur auf Primzahlen testen
    d.h. wenn du eine große Zahl z.B. durch 11 (eine Primzahl) versucht hast zu teilen, dann brauchst du 22, 33, 44, .. nicht mehr testen.

    ich könnte dir in C# einen sehr, sehr schnellen Algorithmus schicken

    Die Voraussetzung für schnelles Finden von Primzahlen ist also eine entsprechend große Liste von schon bekannten Primzahlen.

    Ähnlich wie bei der Berechnung der Fakultät einer Zahl.
     
  9. HAllo

    Wie schnell ??

    ransi
     
  10. Grüezi zusammen

    Der folgenden Lösung liegt der Gedanke der Primzahlen-Liste zugrunde - sinnvollerweise würde diese einmalig zu Beginn angelegt und dann bloss noch durchsucht. Ansonsten würde jeder Aufruf der Funktion aus dem Tabellenblatt ein eigenes Array anlegen, was dem Speicher wohl bald den Garaus machen wird.

    Code:
     
    Thomas Ramel, 8. August 2008
    #11
  11. Ok, dein Code ist dann, wenn dein Speicher ausreichend ist, schneller. Aber erst, wenn du genügend Zeit hattest dein Array aufzubauen.

    Mit der größtmöglichen Zahl für den Datentype Long (+2.147.483.647) finde ich meine Funktion aus #8 auch zeitmäßig völlig ausreichend!
     
    rastrans, 8. August 2008
    #12
Thema:

Primzahlen?? Hilfe!!

Die Seite wird geladen...
  1. Primzahlen?? Hilfe!! - Similar Threads - Primzahlen Hilfe

  2. Hilfe bei "Zählenwenns"

    in Microsoft Excel Hilfe
    Hilfe bei "Zählenwenns": Liebe Experten! Bis jetzt hab ich durch durchforsten des Forums immer Hilfe gefunden. Diesmal leider nicht! Mein Problem: Ich habe einen Planer übernommen und ihn auf "dynamisch" umgestellt. Das...
  3. Hilfe Excel Formel

    in Microsoft Excel Hilfe
    Hilfe Excel Formel: Hallo, was muss ich bei der Formel verändern, um ein Ergebnis zu erhalten? Möchte in Zelle R7 wenn z.B. Feiertag steht, dass die Sollarbeitszeit berechnet wird und wenn in den Zellen M7-Q7 Zeiten...
  4. Benötige Hilfe bei SQL-Befehl

    in Microsoft Access Hilfe
    Benötige Hilfe bei SQL-Befehl: Hallo zusammen und alles Gute für 2025 Es ist mal wieder Sale-Zeit und jetzt müssen bei vielen Artikel zu eine festgesetzten Zeit die VK-Preise geändert werden. Man kann das in unserem...
  5. Hilfe bei der Diagrammerstellung in Excel

    in Microsoft Excel Hilfe
    Hilfe bei der Diagrammerstellung in Excel: Hallo miteinander, ich habe Messdaten einer Temperaturüberwachung, mit denen ich gerade ein wenig spiele und Einstellungen teste. Dazu habe ich mir ein Excel-Blatt gebaut, auf dem ich alle...
  6. Bitte um Hilfe für unsichtbares inhaltsverzeichnis

    in Microsoft Word Hilfe
    Bitte um Hilfe für unsichtbares inhaltsverzeichnis: Hi, vielen Dank schon mal im Voraus an alle, die sich die Zeit nehmen, mir bei meinem Problem zu helfen! Folgendes Problem habe ich: Ich möchte ein Inhaltsverzeichnis zum Navigieren im Dokument...
  7. Hilfe bei Zählen in Liste

    in Microsoft Excel Hilfe
    Hilfe bei Zählen in Liste: Hallo liebes Forum, ich bin auf der Suche nach einer Lösung, in dem beigefügten File die Anzahl zu ermitteln. Es geht um Blechzuschnitte, die unterschiedliche Grössen haben. Die "Gesamt Liste"...
  8. Hilfe gesucht bei Fertigstellung einer Formel

    in Microsoft Excel Hilfe
    Hilfe gesucht bei Fertigstellung einer Formel: Ich habe einen Stundenzettel erstellt und stehe gerade vor einem kleinen Problem mit meiner Excelformel. Es geht um 3 Spalten im Stundenzettel. Ich habe für die automatische Berechnung des...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden