/* * Programmieren fuer Physiker, SS 2010 * * Klausur, Aufg. 5 */ #include using namespace std ; // Berechne die Summe der Ziffernquadrate von n long ziffernquadratsumme(long n) { long s = 0 ; // Summe while (n>0) { s += (n%10)*(n%10) ; // letzte Ziffer von n quadriert summieren n /= 10 ; // letzte Ziffer von n wegnehmen } ; return s ; } int main() { long z, z_kopie ; cout << "Froehlichkeits-Test" << endl ; cout << "'ne positive Zahl bitte: " ; cin >> z ; z_kopie = z ; // Wert von z mal in anderer Variable noch sichern // iteriere die Ziffernquadratsumme, // bis entweder "1"-Periode oder die "nicht-froehlich" Sequenz (z.B. 4) while (z!=1 and z!=4) { z = ziffernquadratsumme(z) ; // naechstes Folgenglied } // Folge ist abgebrochen mit entweder z==1 oder z==4 if (z==1) cout << z_kopie << " ist froehlich." << endl ; else cout << z_kopie << " ist *nicht* froehlich!" << endl ; }