Advertisement
xlujiax

Clasificacion de NUmeros

Aug 23rd, 2017
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <cstdio>
  3. #include <math.h>
  4. using namespace std;
  5.  
  6. int main(int argc, char** argv) {
  7.     int num, sum, auxNum, numDigitos;
  8.     int digito;
  9.     int esPerfecto, esNarcisista, esCompleto;
  10.     while (scanf("%d", &num) != EOF) {
  11.         int numDigitos = 0;
  12.         int sumDiv = 0;
  13.         for (int i = 1; i <= num / 2; i++) {
  14.             if ((num % i) == 0)
  15.                 sumDiv += i;
  16.         }
  17.         esPerfecto = num == sumDiv;
  18.         auxNum = num;
  19.         while (auxNum != 0) {
  20.             numDigitos += 1;
  21.             auxNum /= 10;
  22.         }
  23.         double sum = 0;
  24.         auxNum = num;
  25.         while (auxNum != 0) {
  26.             digito = auxNum % 10;
  27.             sum = sum + pow(1.0 * digito, numDigitos);
  28.             auxNum /= 10;
  29.         }
  30.         esNarcisista = sum == num;
  31.         if (esPerfecto && esNarcisista)
  32.             printf("Completo\n");
  33.         else if (esPerfecto)
  34.             printf("Perfecto\n");
  35.         else if (esNarcisista)
  36.             printf("Narcisista\n");
  37.         else
  38.             printf("Ninguno\n");
  39.     }
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement