Hi,
ich habe leider jetzt erst gesehen, dass du ein paar Punkte von Dennis89 aufgegriffen hast. Ich lasse sie oben trotzdem mal stehen.
Bei `intervall_pruefen()` stimmt die Beschreibung nicht. Da steht für alle ungeraden `h`, aber wenn `ausgabe` den Wert `True` hat, werden auch die geraden `h` geprüft. Was stimmt denn nun? Der Code oder die Dokumentation?
`ausgabe` hat Dennis89 ja bereits angesprochen. Im Code ist dann auch noch mal ein Kommentar der nötig ist, weil das so ein bisschend verwirrend ist. Kann es sein das in beiden Fällen nur die ungeraden `h` bearbeitet werden sollen? Dann steht da fast der gleiche Code doppelt. Der sollte da nur einmal stehen und nur das `print()` sollte bedingt ausgeführt werden.
Ja, da ist mir was durcheinander gegangen. Es sollten erstmal nur die ungeraden h geprüft werden, unabhängig von ausgabe.
Es sieht auch so ein bisschen danach aus, als wenn hier keine selbst gebastelte Lösung, sondern vielleicht Logging verwendet werden sollte.
Was ist das?
`exp` in `bosma()` wird auch berechnet wenn das gar nicht verwendet wird. Das sollte in den entsprechenden ``if``-Zweig wandern.
Verstehe ich.
Auch die anderen Punkte habe ich größtenteils nachvollzogen.
Eine Frage habe ich zu raise ValueError. Ich verstehe den Hintergrund, eine Funktion sollte immer die gleiche Art von Werten zurückgeben.
Wenn ich nun aber sagen wir 10.000 Koeffizienten h überprüfe, dann kann es sein, dass nur ein einziger nicht mit der vorgelegten Liste von Primzahlen überprüft werden kann, alle anderen aber schon. Wenn dann ein ValueError auftritt, wird die komplette Berechnung doch sofort abgebrochen. Ich würde aber gerne auch nachhalten, wieviele Kandidaten ich nicht berechnen konnte.
Danke sehr! Ich gehe nun weiter den Code durch.