Frage von Danne90, 65

Hilfe Übung C Programmierung?

Eine Zahl n   heißt vollkommen, wenn gilt: Die Summe aller Teiler von n (inklusive 1 und der Zahl n selbst) beträgt 2 * n. Beispiel: 6 ist eine vollkommene Zahl, den die Summe der Teiler 1 + 2 + 3 + 6 = 12 = 2 * 6. Schreiben Sie ein Programm, das einen Wert uGrenze sowie einen Wert oGrenze einliest. uGrenze und oGrenze definieren ein Intervall natürlicher Zahlen. Sie sollen nun die Anzahl aller vollkommenen Zahlen zwischen uGrenze und oGrenze berechnen. Strukturieren Sie Ihr Programm wie folgt:  Schreiben Sie eine Funktion istTeiler(i,N), die genau dann true liefert, wenn i die Zahl N teilt  Schreiben Sie eine Funktion istVollkommen(N), die genau dann true liefert, wenn eine vollkommene Zahl ist  Im Hauptprogram untersuchen Sie für jede Zahl i im Intervall uGrenze..oGrenze, ob i eine vollkomme Zahl. Rufen Sie dazu die Funktion istVollkommen auf.  Geben Sie die berechnete Anzahl der gefunden vollkommenen Zahlen im Intervall aus. Wenn Sie wollen können Sie auch gerne die gefundenen vollkommenen Zahlen ausgeben.

Antwort
von safur, 42

Wo kommst du nicht weiter?

Antwort
von MissMaple42, 34

Und was ist jetzt deine Frage?

Oder erwartest du eine Komplettlösung für die Aufgabe? Dann muss ich dich enttäuschen, bissle was musst du schon selber machen.

Kommentar von Danne90 ,

Ich weiß nicht wo ich anfangen soll

Kommentar von ralphdieter ,

Am besten ganz vorn:

Schreiben Sie eine Funktion istTeiler(i,N), die genau dann true liefert, wenn i die Zahl N teilt

Also los:

bool istTeiler ( int i, int N )
{
 return ???;
}

Was muss statt ??? stehen?

Und dann:

Schreiben Sie eine Funktion istVollkommen(N), die genau dann true liefert, wenn eine vollkommene Zahl ist

Kommentar von Danne90 ,

Vielen Dank 

und was soll ich hier machen ?

Im Hauptprogram untersuchen Sie für jede Zahl i im Intervall uGrenze..oGrenze, ob i eine
vollkomme Zahl. Rufen Sie dazu die Funktion istVollkommen auf.

Kommentar von ralphdieter ,

Das ist ja wohl der einfachste Teil:

for ( int i=uGrenze; i<=oGrenze; ++i )
{
 if ( istVollkommen(i) )
 printf("%d ist vollkommen.\n", i);
}

Nur die Funktion istVollkommen() ist ein klein wenig komplizierter. Aber mit einem guten Plan im Hinterkopf geht auch das in wenigen Zeilen.

Tipp: Teste für alle Zahlen t zwischen 1 und n, ob sie Teiler von n sind. Wenn ja, addiere die Zahl zur Teilersumme s.

Zuletzt musst Du nur noch prüfen, ob die Beziehung zwischen s und n erfüllt ist.

Kommentar von Danne90 ,

Leider bis jetzt habe ich keine Lösung gefunden und ich muss die Übung morgen abgeben. es wäre nett von Ihnen,wenn Sie mir am besten ein fertiges Programm....

Vielen Dank :)

Kommentar von Danne90 ,

???

Kommentar von MissMaple42 ,

was hast du denn noch nicht verstanden? Es wäre hilfreich zu wissen, wo du noch Probleme hast. RalphDieter hat dir doch schon einige Tipps gegeben, viel musst du doch gar nicht mehr machen.

Schreibe doch am besten (evtl als neue Antwort) was du bisher hast, dann helfen wir dir weiter. Ein bisschen Eigenleistung musst du schon bringen.

Wenn du so garnichts verstehst kann ich dur nur raten mal in ein Programmierbuch zu schauen und dir da die Grundlagen zur C-Programmierung durchzulesen.

Keine passende Antwort gefunden?

Fragen Sie die Community