Schlagwort-Archive: Python

Primzahlen berechnen

Vor wenigen Tagen bekam ich eine (größere) Primzahl mit 91 Stellen vorgelegt.

Das weckte meinen Ehrgeiz: Bis zu welcher Größe kann man denn auf einem RaspberryPi und mit Python Primzahlen im Sekundenbereich berechnen/finden oder bestätigen?

In meinen Tests konnte ich für Zahlen bis 1.000.000.000.000 relativ locker ausprobieren, ob es sich um eine Primzahl handelt oder nicht, bei 3 Nullen mehr sollte ich mir dann einen Kaffee gönnen ……

Das „Sieb des Eratosthenes“ gelingt auf dem Raspberry bis 9.999.999 recht gut, die erzeugte Liste hat dann 664579 Primzahlen und benötigt ungefähr 40 MByte Speicher. Damit kann man bequem 7-stellige Zahlen in ihre Primfaktoren zerlegen oder 14-stellige Primzahlen testen. Und auch ein Laie wie ich kann den Ansatz nachvollziehen.

Falls man mal eine Primzahl braucht, kann man mit diesen einfachen Verfahren einen Bereich von Zahlen testen und findet dann auch relativ schnell eine Primzahl im gewünschten Größenbereich.

Allerdings fehlen mir immer noch gut 70 Stellen zur vorgegebenen Primzahl ….

Vielleicht sollte ich mich mal mit speziellen Verfahren für größere Primzahlen beschäftigen. Zum Beispiel mit Mersenne-Primzahlen und dem dazu passenden Lucas-Lehmer-Test.

Python als CGI-Sprache

Bei meinen Versuchen mit HTML und CSS bin ich von PHP mit mySQL auf Python mit SQLite3 umgestiegen. So kann ich meine Python-Kenntnisse benutzen bzw. ausbauen.

Der Python-Code gefällt mir um Welten besser als das „Kauderwelsch“ in PHP.

Was ich noch suche, ist ein ordentliches fertiges Interface für SQLite3, mit dem man Befehle ausprobieren und sich auf diese Weise vorgeprüften SQL-Code erstellen kann.

 

Mein Problem bei den ersten Versuchen lag im restriktiven Verhalten des CGI-Bin-Verzeichnisses. Jetzt kenne ich das Verzeichnis, in das ich am besten meine CSS-Datei ablege und sie auch vom Client aus lesen darf. Das CGI-Modul unter dem Apache ist hier wohl sehr restriktiv, was aber aus Sicherheitsüberlegungen heraus wohl Sinn macht.

Kleine Programmierübungen

Um mit Python warm zu werden, habe ich mal folgende Programme (ohne grafische Oberfläche) geschrieben:

Ein Baumann-Würfel-Programm
Ein Sudoku-Helfer, der mich bei der Lösung stark unterstützt
Ein Schiebepuzzle

In den Programmen habe ich ein wenig mit den Möglichkeiten von Python gespielt. Den Programmcode kann man gerne von mir bekommen.

Python

Da es meine erlernten und vertrauten Computersprachen eigentlich nicht mehr gibt, musste ich mir eine neue Sprache für kleine Projekte suchen.

Gefunden habe ich „Python“, eine moderne Interpretersprache, die meinen Vorstellungen recht nahe kommt. Und sie hat mir nach wenigen Versuchen richtig gefallen. Hoffentlich bleibt mir diese Sprache einige Jahre erhalten.

  • Interpreter
  • Schreibweise mit Einrückungen
  • Listenorientierung
  • Gute Funktionalität für Text
  • Modul für richtige Mathematik
  • Weitere nützliche Module
  • Objekte sind möglich
  • Deklarationsfreie Felder
  • Graphische Oberfläche (wenn man will)
  • Ungewohnt: Das Datenmodell (ist eben nicht statisch)
  • Nachteil: Empfindlich auf Groß-/Kleinschreibung (das ist für mich ungewohnt)

Ich fand das Buch von Thomas Theis „Einstieg in Python“ sehr hilfreich.