Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
EnableExplicit
Procedure.i IsTeiler(iZahl.i,iTeiler.i)
Protected iQuotient.i = iZahl/iTeiler
If iTeiler*iQuotient = iZahl
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
EndProcedure
Procedure SummeAllerTeiler(iZahl.i)
Protected iSumme.i = 0 , i
For i=1 To iZahl-1
If IsTeiler(iZahl,i) = 1
iSumme.i + i
EndIf
Next i
ProcedureReturn iSumme
EndProcedure
Procedure.s AusgabeAllerTeiler(iZahl.i)
Protected sSumme.s, i
For i=1 To iZahl-1
If IsTeiler(iZahl,i) = 1
sSumme.s + Str(i)+ " + "
EndIf
Next i
ProcedureReturn sSumme
EndProcedure
Define iZahl1.i = Val(InputRequester("Befreundete Zahlen","Bitte die Zahl eingeben, von der aus gesucht werden soll:",""))
Define iZahl2.i = Val(InputRequester("Befreundete Zahlen","Bitte die Zahl eingeben, bis zu der gesucht werden soll:",""))
Define j
For j=iZahl1 To iZahl2
Define iFreund1.i = SummeAllerTeiler(j)
Define iFreund2.i = SummeAllerTeiler(iFreund1)
If iFreund2 = j And iFreund1 <> iFreund2 And iFreund1 < iFreund2
Define sAusgabe.s = AusgabeAllerTeiler(iFreund1)
sAusgabe.s = Left(sAusgabe,Len(sAusgabe)-3)
If OpenConsole()
PrintN("Freund 1 = "+sAusgabe+" = "+Str(iFreund2))
sAusgabe.s = AusgabeAllerTeiler(iFreund2)
sAusgabe.s = Left(sAusgabe,Len(sAusgabe)-3)
PrintN("Freund 2 = "+sAusgabe+" = "+Str(iFreund1))
PrintN("---")
EndIf
EndIf
Next j
MessageRequester("Befreundete Zahlen","Es wurden alle befreundeten Zahlen ermittelt.")
CloseConsole()
Zuletzt geändert von Andesdaf am 05.06.2009 18:57, insgesamt 1-mal geändert.
Befreundete Zahlen sind so ziemlich das unnötigste (ich kenne zumindest keinen Verwendungszweck) was ich kenne ... aber verdammt cool
Scheint eine gute Umsetzung zu sein, schaue ich mir mal noch an.
Es gibt auch noch nen Ansatz über Primzahlen, steht glaube ich auch auf wikipedia, als weitere Anregung
<offtopic>
Oh gott, da gibts auch gesellige (versoffene) und wahrscheinlich auch
schwule Zahlen
</offtopic>
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.