Befreundete Zahlen V 1.00

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.
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Befreundete Zahlen V 1.00

Beitrag 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() 
Zuletzt geändert von Andesdaf am 05.06.2009 18:57, insgesamt 1-mal geändert.
Win11 x64 | PB 6.20
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag 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:
pb 4.51
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

was sind denn befreundete zahlen? o_O
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

> was sind denn befreundete zahlen? o_O

Nicht verzagen, Wikipedia fragen:
http://de.wikipedia.org/wiki/Befreundete_Zahlen
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

<offtopic>
Oh gott, da gibts auch gesellige (versoffene) und wahrscheinlich auch
schwule Zahlen :mrgreen:
</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.
Bild
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag 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]
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

au ja! schwule zahlen for the win!
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag 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:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag 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:
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

cxAlex hat geschrieben:Für was zahl ich immer? :twisted:
Für 6?
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.
Bild
Antworten