Números amigos y perfectos en C

Vamos a realizar una aplicación que nos averigüe desde un número introducido por teclado, cuales son amigos y cuales perfectos. Para saber que significa esto, me remito a la Wikipedia que dice lo siguiente:

Números amigos: Dos números amigos son dos enteros positivos A y B, tal que A es la suma de todos los divisores de B, y B la suma de todos los divisores de A. La unidad se considera divisor propio, pero no lo es el mismo número.

Por poner un ejemplo, el par de números (220, 284) son amigos porque:

Los divisores propios de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110, que suman 284.
Los divisores propios de 284 son 1, 2, 4, 71 y 142, que suman 220.

Números perfectos: Un número perfecto es un número natural que la suma de los divisores de si mismo sin contar el mismo, da de resultado el mismo. En resumen, un número perfecto es aquel que es amigo de si mismo.

Por poner un ejemplo, el número 6 es un número perfecto, ya que la suma de sus divisores (1, 2 y 3) da el mismo número.

Ahora entraremos en materia para con un simple código fuente que busca los números amigos y perfectos, desde 1 hasta un número que se introduzca por teclado.

#include <stdio.h>

void main(void) {
  int num1,num2,i;
  int numero;

  printf("Introduce el numero: ");
  scanf("%d", &numero);
  for(i=2;i<=numero;i++) {
    num1=numeros(i);
    num2=numeros(num1);
    if (num1 == i ) {
      printf("El numero %d es perfecto \n",i);
    } else if (num2 == i) {
      printf("El numero %d es amigo de %d \n",i,num1);
    }
  }
}

int numeros(int num) {
  int acumula=0;
  int i;

  for (i=1;i<=num;i++) {
     if ((num % i == 0) && (i != num)) {
        acumula=acumula+i;
     }
  }
  return acumula;
}

Descargar: CÓDIGO FUENTE

La verdad que todavia estoy intentando averiguar porque razón nos hacen realizar estos programas de inicio, supongo que alguna utilidad tendrá en un futuro jejejejeje, supongo que sera para hacernos pensar o buscar información.

Esta entrada fue publicada en Código C y etiquetada , , , , , , , , , , , , , , , . Guarda el enlace permanente.

2 respuestas a Números amigos y perfectos en C

  1. Joel dijo:

    Un Saludo,
    Como no soy partidario de simplemente aprovecharme de los conocimientos y el esfuerzo de los demás, que menos, que agradecerlos, ya que algunos de ellos los he utilizado para salir de alguna duda y tu explicación, sencilla y directa, es de agradecer.
    Reitero mi saludo y mi agradecimiento.
    Joel_ex

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.