Seite 1 von 1

Sage - Primzahl

Verfasst: Dienstag 6. Dezember 2011, 20:43
von Sagemath
Hallo Leute,

bin neu hier und weiß nicht, wo Fragen zu Sage hinkommen, deswegen stelle ich es hier mal rein:

Und zwar geht es darum, dass ich eine Prozedur schreiben soll, die mir einmal bestimmt, ob eine natürliche Zahl n eine Primzahl ist und falls nicht, sollen einmal die Anzahl der Teiler und die Primfaktorzerlegung ausgegeben werden.

Habe erstmal eine allegemine Frage und zwar habe ich so begonnen:

Code: Alles auswählen

n=4
is_prime(n)
if(is_prime(n)):
    print('Primzahl')
else:
    divisors(n)
Habe wie man sieht die Zahl 4 mal eingegeben und es passiert einfach nichts, bei 5 gibt er mir "Primzahl" aus, bei 4 hätte ich für den Anfang gerne mal die Teiler.

Was mache ich falsch? Ich nehme an vor der Divisors muss noch etwas, aber leider bin ich relativ am Anfang mit dem Programm und weiß nicht was, kann mir da jemand einen Tipp geben?

Eine weitere Frage ist, wie ich mir denn die Anzahl ausgeben lasse? Ich soll die Teiler selbst nicht ausgeben, sondern nur, wie viele es sind, dafür bräuchte ich irgendeinen Befehl, der sich auf divisors bezieht, gibt es da irgendwas mit Anzahl oder so?

Danke schonmal.

Gruß

Re: Sage - Primzahl

Verfasst: Dienstag 6. Dezember 2011, 21:57
von Sagemath
Mittlerweile hab ich die erste Frage geknackt, ich muss einfach "print" davor setzen...

Aber die zweite Frage bekomme ich nicht gelöst, wie kann ich dafür sorgen, dass mir die Anzahl der Teiler ausgegeben wird? Also bei 4 z.B. müsste ja die 3 ausgegeben werden, gibt es da nicht irgendeinen Befehl wie "count" oder sowas?

Re: Sage - Primzahl

Verfasst: Dienstag 6. Dezember 2011, 22:00
von BlackJack
@Sagemath: Ich vermute mal `divisiors()` gibt eine Liste zurück. An der Stelle möchtest Du dann vielleicht mal ein Python-Tutorial durcharbeiten bevor Du mit `Sage` weiter machst, und hier absolute Grundlagen fragst. :-) In der Python-Dokumentation ist zum Beispiel ein Tutorial enthalten.

Re: Sage - Primzahl

Verfasst: Dienstag 6. Dezember 2011, 22:05
von Sagemath
Wäre schön, wenn ich die Zeit dazu hätte bei dem ganzen Unistress... Kannst du mir wenigstens sagen unter welchem Kapitel ich da am besten schaue bitte?

Re: Sage - Primzahl

Verfasst: Dienstag 6. Dezember 2011, 22:36
von BlackJack
@Sagemath: Falls es tatsächlich eine Liste ist, dann natürlich im Tutorial bei Listen. Die kommen im Inhaltsverzeichnis zweimal vor — einmal am Anfang in `An Informal Introduction to Python` und später noch einmal als erstes in `Data Structures`. Aber die Grunddatentypen und Kontrollstrukturen solltest Du Dir wirklich mal von vorne durcharbeiten. So viele sind das nicht, und die werden Dir wirklich ständig begegnen. Bis Abschnitt 9 würde ich empfehlen. Klassen, also Abschnitt 9 selbst brauchst Du vielleicht nicht unbedingt.

Re: Sage - Primzahl

Verfasst: Dienstag 6. Dezember 2011, 22:45
von /me
Sagemath hat geschrieben:

Code: Alles auswählen

n=4
is_prime(n)
if(is_prime(n)):
    print('Primzahl')
else:
    divisors(n)
Bevor du mit dem Tutorial anfängst gibt es direkt noch einen Tipp. Das if-Statement schreibt und liest sich ohne Klammern viel besser.

Code: Alles auswählen

if is_prime(n):
Ich nehme an, du hast auch schon selber erkannt, dass der erste Aufruf von is_prime() sinnfrei ist. Es wird zwar eine Berechnung durchgeführt, der Rückgabewert der Funktion wird allerdings nirgendwo verwendet.

Re: Sage - Primzahl

Verfasst: Freitag 9. Dezember 2011, 16:54
von ProGammler88
er hat recht ist eigentlich "toter code" wir im studium haben richtig abzug für sowas bekommen =)
ich mach jetz erstmal schön Bed and Breakfast in London :)

Re: Sage - Primzahl

Verfasst: Freitag 9. Dezember 2011, 17:13
von Hyperion
ProGammler88 hat geschrieben:er hat recht ist eigentlich "toter code" wir im studium haben richtig abzug für sowas bekommen =)
Aber nicht für Grammatik- oder Zeichensetzungsfehler, oder? :twisted:

Re: Sage - Primzahl

Verfasst: Freitag 9. Dezember 2011, 17:31
von deets
@Hyperion

Leider auch nicht fuer sinnlose Senfzugabe zu allem, was nicht bei 3 auf den Baeumen ist...

Re: Sage - Primzahl

Verfasst: Freitag 9. Dezember 2011, 19:03
von problembär
@deets: Ich finde nicht, daß das "Senf" ist: Wenn man in einer Computersprache nicht jedes Zeichen richtig setzt, läuft meist etwas schief. Wenn man Glück hat, erhält man eine Fehlermeldung, wenn nicht, ein falsches Programmergebnis. Insofern sollte man sich um richtige Rechtschreibung und Grammatik bemühen. Und diese dann auch nicht in den menschlichen Sprachen mit Füßen treten.

@Sagemath: Offenbar hast Du die Funktionen "is_prime()" und "divisors()" noch gar nicht implementiert. Wie sollen sie dann ein Ergebnis liefern?

Ah! Offenbar geht es um Sage. Na, dann mußt Du wohl noch ein Modul einbinden und die Methoden daraus ansprechen. Das heißt, wenn Du den Code nicht doch lieber ohne Sage selbst schreiben willst.

Edit: Hmm, Sage scheint selbst so eine Art Python-Distribution zu sein? Merkwürdig.

Re: Sage - Primzahl

Verfasst: Freitag 9. Dezember 2011, 22:25
von BlackJack
@problembär: Ich glaube nicht das sich deets auf den Beitrag von Hyperion bezog.

Und Sagemath muss die nicht selber definieren, denn die gibt es bei Sage schon.

Re: Sage - Primzahl

Verfasst: Samstag 10. Dezember 2011, 03:52
von deets
@problembaer

Ich bezog mich auf Hyperions Aussage zu ProGammler88. Und dessen Auftreten hier im Forum - kein Thread, der nicht noch einen sinnlosen Halbsatz abbekommt...

Re: Sage - Primzahl

Verfasst: Samstag 10. Dezember 2011, 10:46
von lunar
Dieses Forum entwickelt sich offenbar langsam zum Deppenmagnet;)