Seite 1 von 2

Befreundete Zahlen V 1.00

Verfasst: 02.01.2009 18:37
von Andesdaf
Hallo!
Falls jemand befreundete Zahlen ermitteln will, hier ist der Code...

Code: Alles auswählen

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() 

Verfasst: 02.01.2009 19:16
von gnasen
Befreundete Zahlen sind so ziemlich das unnötigste (ich kenne zumindest keinen Verwendungszweck) was ich kenne ... aber verdammt cool 8)

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 :wink:

Verfasst: 02.01.2009 19:32
von Kaeru Gaman
was sind denn befreundete zahlen? o_O

Verfasst: 02.01.2009 19:36
von cxAlex
> was sind denn befreundete zahlen? o_O

Nicht verzagen, Wikipedia fragen:
http://de.wikipedia.org/wiki/Befreundete_Zahlen

Verfasst: 02.01.2009 19:46
von ts-soft
<offtopic>
Oh gott, da gibts auch gesellige (versoffene) und wahrscheinlich auch
schwule Zahlen :mrgreen:
</offtopic>

Verfasst: 02.01.2009 19:47
von cxAlex
[offtopic]
ts-soft hat geschrieben:<offtopic>
Oh gott, da gibts auch gesellige (versoffene) und wahrscheinlich auch
schwule Zahlen :mrgreen:
</offtopic>
Naja, schwule eher nicht, es heißt ja die Zahl, die Zahlen.....
:twisted: :mrgreen:

[/offtopic]

Verfasst: 02.01.2009 19:48
von Kaeru Gaman
au ja! schwule zahlen for the win!

Verfasst: 02.01.2009 21:17
von rolaf
cxAlex hat geschrieben:Naja, schwule eher nicht, es heißt ja die Zahl, die Zahlen.....
Doch, doch: cxAlex, der zahl(t) immer. :mrgreen:

77 ist absolut schwul :wink:

Verfasst: 02.01.2009 21:20
von cxAlex
DrFalo hat geschrieben:
cxAlex hat geschrieben:Naja, schwule eher nicht, es heißt ja die Zahl, die Zahlen.....
Doch, doch: cxAlex, der zahl(t) immer. :mrgreen:

77 ist absolut schwul :wink:
Für was zahl ich immer? :twisted:

Verfasst: 02.01.2009 21:21
von ts-soft
cxAlex hat geschrieben:Für was zahl ich immer? :twisted:
Für 6?