Advertisement
pexea12

Happy Boy

Nov 10th, 2015
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.64 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int countDigits(int n) {
  4.     int count = 0;
  5.     while (n != 0) {
  6.         n /= 10; ++count;
  7.     }
  8.    
  9.     return count;
  10. }
  11.  
  12. int happyNumber(int n) {
  13.     // Return 1 if n is happy, 0 otherwise
  14.     int digits = countDigits(n);
  15.     int left = 0, right = 0, i;
  16.    
  17.     for (i = 0; i < digits / 2; ++i) {
  18.         right += n % 10; n /= 10;
  19.     }
  20.    
  21.     if (digits % 2 == 1) n /= 10;
  22.    
  23.     for (i = 0; i < digits / 2; ++i) {
  24.         left += n % 10; n /= 10;
  25.     }
  26.    
  27.     if (left == right) return 1;
  28.     return 0;
  29. }
  30.  
  31. int main()
  32. {
  33.     int n;
  34.     printf("n = ");
  35.     scanf("%d", &n);
  36.    
  37.     for (int i = 0; i < n; ++i)
  38.         if (happyNumber(i * i)) printf("\n%d %d", i, i * i);
  39.  
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement