Vollkommene Zahlen < Maxima < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 22:53 Fr 12.06.2020 | Autor: | kuyaykim |
Aufgabe | for a:1 thru 10000 do block(
T[a]:[],
for i:1 thru a do if mod(a,i)=0 then T[a]:append(T[a],[i]),
n:length(T[a]),
if sum(T[a][i],i,1,n-1)=T[a][n] then disp(a,"ist eine
vollkommene Zahl","")
); |
Hallo!
Kann mir jemand das oben Schritt für Schritt erklären?
Ich möchte es nicht nur abtippen, sondern auch verstehen, was dort passiert.
LG
Nicole
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 01:10 Sa 13.06.2020 | Autor: | meili |
Hallo kuyaykim.
Das Programm gibt die vollkommenen Zahlen kleiner gleich 10000 aus.
> for a:1 thru 10000 do block( #Beginn einer Schleife von 1 bis 10000; a durchläuft diese Zahlen
> T[a]:[], #leere Liste wird definiert; die Liste soll die Teiler der gerade bearbeiteten Zahl a aufnehmen
> for i:1 thru a do if mod(a,i)=0 then T[a]:append(T[a],), #Schleife von 1 bis a; i durchläuft diese Zahlen; ist mod(a,i)=0, dann ist i Teiler von a und i wird der Liste T[a] angehängt
> n:length(T[a]), #die Anzahl der Elemente der Teilerliste wird in n gespeichert
> if sum(T[a],i,1,n-1)=T[a][n] then disp(a,"ist eine #die Elemente der Teilerliste ausschließlich des letzten Elementes werden aufsummiert. Wenn die Summe gleich dem letzten Element a ist, ist a eine vollkommene Zahl
> vollkommene Zahl","") #und wird mit Kommentar "ist vollkommene Zahl" ausgegeben
> ); #Ende der 1. Schleife
> Hallo!
> Kann mir jemand das oben Schritt für Schritt erklären?
> Ich möchte es nicht nur abtippen, sondern auch verstehen,
> was dort passiert.
> LG
> Nicole
Gruß
meili
|
|
|
|