000
18.11.2009, 12:26 Uhr
Pamina
|
So nun im neuen Thema, die neuen Ha sind online und ich hab mich auch schon versucht, aber wieder ne frage...
die aufgabe lautet:
Schreiben Sie mit Hilfe mindestens einer Funktion ein Programm, das heraus ndet, ob fur eine eingegebene Zahl folgendes gilt: Es gibt eine zweite Zahl, so dass die Summe der Teiler der eingegebenen Zahl (inkl. der 1 aber ohne der eingegebenen Zahl selbst) gleich der zweiten Zahl ist und umgekehrt, z.B.: Teiler von 220: 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284 Teiler von 284: 1 + 2 + 4 + 71 + 142 = 220
ich hab das programm auch hinbekommen, nur bei primzahlen funktioniert es nicht, ich müsste also irgendwie noch was reinschreiben, was bei Primzahlen ausgibt "dies ist eine Primzahl, daher nur durch sich selbst und 1 teilbar, aufgabenstellugn kann nicht erfüllt werden." außerdem muss ich den fehler abfangen, wenn buchstaben eingegeben werden...
bloß wie soll ich das wo hinschreiben??? hier mal mein programm:
C++: |
#include <iostream>
using namespace std;
int main() { int x=0, y=0; // deklarieren 2er Zahlen int sum_teiler_1 = 0, sum_teiler_2 = 0; // Teiler (um aufzusumieren) initialiserien int i; //Zählervariable
cout << "Bitte geben Sie die zu ueberpruefende Zahl ein: "; cin >> x;
cout << endl << "Teiler der eingegebenen Zahl: "; //Diese Schleife für die eingegebene Zahl for(i = 1; i<x;i++) // Schleife um Divisionen durchzuführen { if ( (x%i) == 0) // Ganzzahldivision { sum_teiler_1 = sum_teiler_1 + i; cout << " + " << i; } } cout << endl << "Teiler der Summe der eingegebenen Zahl: "; y=sum_teiler_1; // Schleife für die Summe der Teiler der eingegebenen Zahl for(i = 1; i<y;i++) // Schleife um alle Divisionen durchzuführen { if ( (y%i) == 0) // Ganzzahldivision { sum_teiler_2 = sum_teiler_2 + i; cout << " + " << i; } } cout << endl; // Leerzeile cout << endl; // Leerzeile // Noch eine Abfrage ob sum_teiler_1 gleich dem sum_teiler_2 ist if ((y == sum_teiler_1) == (x == sum_teiler_2)) { cout << "Summe der Teiler Zahl(1): " << sum_teiler_1 << endl; cout << "Summe der Teiler Zahl(2): " << sum_teiler_2 << endl;
cout << endl; // Leerzeile
cout << "Fuer die Zahl " <<x<< " gibt es die Zahl "<<y<<" , welche die Bedingung : Es gibt eine zweite Zahl," "so dass die Summe der Teiler der eingegebenen Zahl (inkl. der 1 aber" " ohne der eingegebenen Zahl selbst) gleich der zweiten Zahl ist und umgekehrt" " erfuellt. " << endl; } else { cout << "Summe der Teiler Zahl(1): " << sum_teiler_1 << endl; cout << "Summe der Teiler Zahl(2): " << sum_teiler_2 << endl; cout << endl; // Leerzeile cout << "Fuer " <<x<< " gibt es keine Zahl, fuer die gilt: " "Es gibt eine zweite Zahl, so dass die Summe der Teiler der eingegebenen Zahl (inkl. der 1 aber " "ohne der eingegebenen Zahl selbst) gleich der zweiten Zahl ist und " "umgekehrt" << endl; } getchar();getchar(); return 0; }
|
@ao, schreibe ich nicht mit int sum_teiler_1 = 0, sum_teiler_2 = 0 schon ne funtion? reicht das nciht? |