miércoles, 11 de marzo de 2015

NÚMEROS PRECISOS

/*
183-Se necesita realizar un programa que imprima todos los números precisos que
    existen hasta el 5000. Un número preciso es aquel que al elevar al cuadrado
    la cantidad de cifras que tiene, su resultado es igual a la suma de cada uno
    de sus dígitos.
    Ejemplo: el número 13, es preciso pues tiene 2 cifras, y 22 = 4
    Ahora la suma de sus cifras es: 1+3 = 4. Como la suma de sus cifras es igual
    a la cantidad de cifras elevada al cuadrado este es un número preciso.
    Realizar las siguientes funciones:
    Función cuadrado: que recibe el número y devuelve el cuadrado de la
      cantidad de cifras que tiene
    Función suma: que recibe el número y suma las cifras del número
    Función preciso: retorna 1 si el numero recibido como parámetro es preciso
      o 0 si no es preciso
    Función main que lista cada uno de los números precisos que existen hasta
      el 5000.
*/
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>

int cuadrado(int n);
int sumacif(int n);
int preciso(int n);

main()
{
 int n,i;

 printf("\nPROGRAMA PARA MOSTRAR TODOS LOS NUMEROS PRECISOS QUE HAY");
 printf("\n               DEL 1 HASTA EL 5000\n");
 for(i=1;i<5001;i=i+1)
  {
   n = preciso(i);
   if(n ==1 )
    printf("%d,\t",i);
  }
 printf("\n");
 getch();
}
int cuadrado(int n)
{
 int i=0;
 while(n>0)
  {
   i=i+1;
   n = (n/10);
  }
 i = (i*i);
 return (i);
}

int sumacif(int n)
{
 int sum=0;
 while(n>0)
  {
   sum = (sum + (n%10));
   n = (n/10);
  }
 return (sum);
}

int preciso(int n)
{
 int su, cu;

 su = sumacif(n);
 cu = cuadrado(n);
// printf("%d=%d,%d ",n,su,cu);
 if(cu == su)
  {
  return (1);
  }
 else
  {
  return (0);
   }

}

No hay comentarios:

Publicar un comentario