#include unsigned int sods ( unsigned int n ) { unsigned s = 0, d; while (n) { d = n % 10; s += d * d; n /= 10; } return s; } int ishappy ( unsigned int n ) { printf("\n %u\n", n); while (1) { if (n == 1) return 1; if (n == 4) return 0; n = sods(n); printf(" -> %u\n", n); } } int main ( ) { unsigned int n; printf("n = "); scanf("%u", &n); if (ishappy(n)) printf("\n%u is happy\n", n); else printf("\n%u is unhappy\n", n); return 0; }