?Hilfe? Ausgabe Befreundeter Zahlen \ Amicable Numbers ?Hilfe?
-
Entwickeln Sie ein Programm in C, welches die ersten 13 befrundeten Zahlenpaare auf dem Bildschirm ausdrueckt!
# 1 220 284
# 2 1184 1210
# 3 2620 2924
# 4 5020 5564
# 5 6232 6368
# 6 10744 10856
# 7 12285 14595
# 8 17296 18416
# 9 63020 76084
#10 66928 66992
#11 67095 71145
#12 69615 87633
#13 79750 88730Verwenden Sie keine for() Schleife
Verwenden Sie do, while, do-while or if.Kann mir jemand vieleicht den Code in C fuer das Programm geben? Es waere schoen wenn es fuer ein Anfaenger
verstaendlich kommentiert ist. Vielen Dank fuer eure Hilfe.
-
-
Wie hättest du das Problem denn gelöst, wenn du eine for()-Schleife nutzen dürftest?
Wenn du das geschafft hast, kannst du die for()-Schleife (fast) verlustfrei durch eine while-Schleife ersetzen:
for( init; check; update ) { action; } => init; while( check ) { action; update; }
-
Nachdem ich nicht davon ausgehe, dass du weißt, was "befrundete" Zahlen sind --> http://de.wikipedia.org/wiki/Befreundete_Zahlen
-
for( init; check; update ) was bedeutet check update?
{
action; action?
}=>
init;
while( check ) while check?
{
action;
update;
}die umsetzung verstehe ich nicht???
ich habe eine zahl 284 z.Bsp diese teile ich
284 / 1 = 284
284 / 2 = 142 - Ganze Zahl(Teilerzahl)
284 / 3 = 94.666
284 / 4 = 71 - Ganze Zahl(Teilerzahl)
284 / 5 = 56.8
284 / 6 = 47.3
284 / 7 = 40.57
284 / 8 = 35.5
284 / 9 = 31.55
284 / 10 = 28.4
284 / 11 = 25.8
284 / 12 = 23.6
284 / 13 = 21.84
284 / 14 = 20.28
" " = """"
284 / 71 = 4 - Ganze Zahl (Teilerzahl)
284 /142 = 2 - Ganze Zahl (Teilerzahl)
284 /284 = 1 - Ganze Zahl (Teilerzahl)So nun addiere ich Ganszahligen Teiler 1+2+4+71+142 = 220
Das bedeutet das somit 220 befreundet mit 284 ist 220=284
Umgeschrieben 220 = Teilersumme der ganzen Zahlen von 284.
So wie verpacke ich das in diese schleife? Was ist do? und was ist while?
Erstmal Zahl einlesen oder? Variablen deklarieren?
int i (Laufzahl) = i++
int zahl1 = 0 (284)
int zahl2 = 0 (220)
int teilersumme = zahl1 Oder Zahl 2 % 1,2,3,4?
oder schreibt man das so?
teilersumme = zahl1 | zahl2 % i++do was?
while was?Danke fuer eure Hilfe
-
Erstmals zu den Schleifen
For:
for (i=0; i<5; i++) { ergebnis = 0+i; }
D.h. er läuft von i=0 bis i=4 (also 5 mal) durch und zählt jeweils i zu 0 dazu und speichert das Ergebnis in "ergebnis" (musst du vorher deklarieren).
Do while bedeutet, er macht etwas (do), bis ein bestimmtes Ereignis eintritt (while).
Also z.B.
do {dividieren von 1 bis n=deine Zahl} while (Teiler<2).
-
ballu schrieb:
was bedeutet check update?
action?
...
die umsetzung verstehe ich nicht???
....oder schreibt man das so?
teilersumme = zahl1 | zahl2 % i++do was?
while was?
Fang dein Tutorial nochmal von vorne an. Oder leih dir ein Buch aus der (öffentlichen) Bibliothek.Schreib erstmal ein paar kleine Programme:
Fang mit dem Programm zur Ausgabe von "Hallo Welt!" an.
Dann gibst du den Text 10 mal hintereinander aus.
Berechne die Summe der Zahlen von 1 bis 30
Berechne das Produkt der Zahlen von 1 bis 30Dann kannst du nochmal bei den befreundeten Zahlen vorbei schauen.
Nochmal zu den Schleifen:
Schau dir mal for( init; check; update ) und for (i=0; i<5; i++) an.
Fallen dir dabei Ähnlichkeiten auf. Tipp: die ; stehen da nicht zum Spass.
Jetzt setze das mal beiinit; while( check ) while check? { action; update; }
ein.
Die Bedeutung von action überlasse ich dir.
Falls du kein Englisch kannst, kann ich http://dict.leo.org/ende?lang=de&lp=ende empfehlen. (Gibt es auch als Suchmaschine für Firefox)Ansonsten ist das alles nochmal im Buch erklärt. Das steht soweit auch in jedem noch so vernachlässigtem Online-Tutorial.
-
Ich will mal nicht so sein und helf dir (ein bisschen)
Mit folgendem Programm kannst du dir mal deine Teiler ausgeben lassen:
int main () { float zahl=284; int i=1; float teiler; do { teiler = zahl/i; printf("Teiler: %f\n", teiler); i++; } while (i<zahl+1); }
Man beachte die Ähnlichkeiten:
i=1 --> init
i<zahl+1 --> check
i++ --> update
-
ballu schrieb:
Verwenden Sie keine for() Schleife
Verwenden Sie do, while, do-while or if.Nachdem du laut Angabe keine for-Schleife verwenden sollst, müsstest du doch zumindest schon mal was darüber gehört haben...?