/*
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