Jo, aus 49!ts-soft hat geschrieben:Für 6?cxAlex hat geschrieben:Für was zahl ich immer?

Code: Alles auswählen
EnableExplicit
Procedure ProperDivisors (n, List divisor())
; liefert alle *echten* Teiler von n (d.h. alle ohne n selbst)
; in der verknüpften Liste divisor()
Protected k
ClearList(divisor())
If n < 2
ProcedureReturn
EndIf
AddElement(divisor())
divisor() = 1
If n % 2 = 0
For k = 2 To n/2
If n % k = 0
AddElement(divisor())
divisor() = k
EndIf
Next
Else
; In diesem Fall brauchen wir nur ungerade Teiler zu suchen:
For k = 3 To Int(n/3) Step 2
If n % k = 0
AddElement(divisor())
divisor() = k
EndIf
Next
EndIf
EndProcedure
;-- Demo
Define n, last, sum.q
Define temp.s
NewList teiler()
Debug "Summe der echten Teiler von ..."
Debug ""
For n = 2 To 20
ProperDivisors(n, teiler())
last = ListSize(teiler()) - 1
temp = ""
sum = 0
ForEach teiler()
temp + Str(teiler())
If ListIndex(teiler()) < last
temp + "+"
EndIf
sum + teiler()
Next
Debug Str(n) + ": " + temp + " = " + Str(sum)
Next
Hä.. wie jetz? Ich glaub ich spiel in Österreich auch mal Lotto, da gibts bessere ChancencxAlex hat geschrieben:Ne, in Österreich 6 aus 45 ^^