Número perfecto

Número perfecto

De Wikipedia, la enciclopedia libre

Un número perfecto es un natural que es igual a la suma de sus divisores propios positivos, sin incluirse él mismo.

Así, 6 es un número perfecto, porque sus divisores propios son 1, 2 y 3; y 6 = 1 + 2 + 3. Los siguientes números perfectos son 28, 496 y 8128.

El matemático Euclides descubrió que los cuatro primeros números perfectos vienen dados por la fórmula 2n-1 × (2n – 1):

n = 2:   21 × (22 – 1) = 6
n = 3:   22 × (23 – 1) = 28
n = 5:   24 × (25 – 1) = 496
n = 7:   26 × (27 – 1) = 8128

Al darse cuenta de que 2n – 1 es un número primo en cada caso, Euclides demostró que la fórmula 2n–1(2n – 1) genera un número perfecto par siempre que 2n – 1 es primo.

Los matemáticos de la Antigüedad hicieron muchas suposiciones sobre los números perfectos basándose en los cuatro que ya conocían. Muchas de estas suposiciones han resultado ser falsas. Una de ellas era que, como 2, 3, 5 y 7 eran precisamente los cuatro primeros números primos, el quinto número perfecto se obtendría con n = 11, el quinto número primo. Sin embargo, 211 – 1 = 2047 = 23 × 89 no es primo y por tanto n = 11 no genera un número perfecto. Dos de las otras suposiciones equivocadas eran:

  • El quinto número perfecto tendría cinco dígitos, ya que los cuatro primeros tienen 1, 2, 3 y 4, respectivamente.
  • Los números perfectos terminarían alternativamente en 6 y en 8.

El quinto número perfecto (33550336) tiene 8 dígitos, falseando así la primera suposición. En cuanto a la segunda, el quinto número perfecto acaba en 6, pero también el sexto (8589869056) termina en 6. (El que la última cifra de un número perfecto expresado en base 10 siempre sea 6 u 8 no es difícil de demostrar.)

Es verdad que si 2n – 1 es un número primo, entonces 2n–1(2n – 1) es un número perfecto, pero el recíproco no es necesariamente cierto. Hoy en día, a los números primos generados por la fórmula 2n – 1 se los conoce como números primos de Mersenne, en honor al monje del siglo XVII Marin Mersenne, quien estudió teoría de números y números perfectos.

Posteriormente, Euler demostró en el siglo XVIII que todos los números perfectos pares se generan a partir de la fórmula que ya descubrió Euclides.

No se conoce la existencia de números perfectos impares. Sin embargo, existen algunos resultados parciales. Si existe un número perfecto impar debe ser mayor que 10300, debe tener al menos 8 factores primos distintos (y al menos 11 si no es divisible por 3). Uno de esos factores debe ser mayor que 107, dos de ellos deben ser mayores que 10.000 y tres factores deben ser mayores que 100.

Considerando la suma de los divisores propios existen otros tipos de números.

Se puede decir que el número perfecto es un número amigo de sí mismo.

Tabla de contenidos

[editar] Otras propiedades de los números perfectos pares

[editar] Son números triangulares

Un número triangular es de la forma \frac{n^2+n}{2}, donde «n» es un número entero positivo cualquiera distinto de cero. Si partimos de la identidad 2^{p-1}\left(2^p-1\right)=\frac{\left(2^p -1\right) +1}{2}\left(2^p-1\right) y distribuimos el producto del lado derecho obtenemos: 2^{p-1}\left(2^p-1\right)=\frac{\left(2^p-1\right)^2+\left(2^p-1\right)}{2}. La expresión 2p − 1 es un número primo de Mersenne y vemos que el término derecho de la identidad adopta la forma correspondiente a la definición de número triangular. Podemos afirmar que un número perfecto par es un número triangular y su orden es un número primo de Mersenne.

[editar] Son números combinatorios o coeficientes del binomio

Como todos los números triangulares están en la tercera columna del triángulo de Pascal y acabamos de ver que todo número perfecto par es un número triangular, los números perfectos son también números combinatorios. {2^p\choose 2}, donde 2p es la potencia correspondiente a un número primo de Mersenne aumentado en una unidad.

[editar] Son números hexagonales

Un número hexagonal es de la forma n(2n − 1) = 2n2n, para «n» un número entero positivo cualquiera distinto de cero. Surge inmediatamente de la identidad 2^{p-1}\left(2^p - 1\right) = 2^{p-1}\left(2.2^{p-1}-1\right), llamando «n» al número 2p − 1.

[editar] Cuestiones abiertas

Por cuestión abierta se entiende una propiedad de la que todavía no se tiene una demostración, tanto de su afirmación como de su negación. Son cuestiones abiertas:

  • Determinar si existen infinitos números perfectos.
  • Demostrar la imposibilidad de un número perfecto impar o encontrar uno.

[editar] Obtener numeros Perfectos en diferentes lenguajes de Programacion

El siguiente código en lenguaje C, permite determinar si un número es perfecto:

# include <stdio.h>
# include <stdlib.h>
 
int numeroPerfecto(int num);
 
main()
{
    int np, numero;
 
    printf("\nIngrese un numero: ");
    scanf("%i", &numero);
 
    np = numeroPerfecto(numero);
 
    if(np == 1)
        printf("\nEs Perfecto\n");
    else
        printf("\nNo es Perfecto\n");
    system("pause");
}
 
int numeroPerfecto(int num)
{
    int acum = 0 ;
    int i;
 
    for( i = 1; i<num; i++ )
        if( num%i == 0 )
            acum += i;
    if( acum == num )
        return 1;
    else
        return 0;
 
}
 
#include <stdio.h>
int main (void)
{
    int n,i,resto,suma;
 
    printf ("\nEste programa comprueba si un numero entero es perfecto o no");
    printf ("\n\nIntroduce el numero: "); 
    scanf ("%i",&n);  
    suma=0;
    resto=0;
    for (i=1; i<n; i++)       //cuenta desde 1 hasta n-1 vs: si n=5, cuenta 1,2,3 y 4
    {
    resto=n%i;
    if (resto==0)       
    suma=suma+i;
    }
    if (n==suma)
    printf ("\nEl numero %i es perfecto\n\n",n);
    else
    printf ("\nEl numero %i no es perfecto\n\n",n);
 
system ("pause");
return (0);    
}

Este codigo bajo visualbasic.net permite ver si un numero es perfecto o no. (este calculo limita hasta el 5 numero perfecto, ya que para el sexto numero perfecto da un error de overflow

numero = Val(TextBox1.Text)
        sumas = 0
        For i = 1 To numero - 1
            If numero Mod i = 0 Then sumas = sumas + i
        Next
        If sumas = numero Then
            Label5.Text = Str(numero) + " es un numero perfecto"
        Else
            Label5.Text = Str(numero) + " no es un numero perfecto"
        End If

El siguiente código en C# muestra la cantidad de números perfectos indicada por cant

private static bool EsPerfecto(Int64 n)
{
    Int64 t = 0;
    for (Int64 i = 1; i < n; i++)
        if (n % i == 0) t += i;
    return (n == t);
}
 
private static void Lista(int cant)
{
    for (Int64 i = 1; cant > 0; i++)
    {
        if (EsPerfecto(i))
        {
            Console.WriteLine(i);
            cant--;
        }
    }
}
 
static void Main(string[] args)
{
    Lista(3);//Imprime los primeros 3
    Console.ReadLine();
}

El siguiente codigo en curri genera la lista infinita de los numeros perfectos:

listaperfec :: [Int]
listaperfec = [x | x <- [2..], perfecto x]
              where perfecto n = sum(divisores n) == n 
                                        where divisores n = [x | x <- [1..(n-1)], n `mod` x == 0]
 
 
 
 
sum::[Int]->Int
sum [] = 0
sum (x:xs) = x+ (sum xs)

El siguiente codigo nos permite verificar si un numero es perfecto en lenguaje java

class perfecto {
    public static void main(String args[]) {
        int numero=6, sumas=0, i;
        for (i = 1; i<numero; i++) {
            if (numero % i == 0) {
                sumas = sumas + i;
            }
        }
        if (sumas == numero) {
            System.out.println("El numero "+numero+" es un numero perfecto;");
        } else {
            System.out.println("El numero "+numero+" no es un numero perfecto;");
        }
    }
}

[editar] Véase también

[editar] Enlaces externos


El contenido de esta página (o parte de ella) fue extraído de wikipedia y puede redistribuirse libremente bajo la licencia de documentación libre GNU
 
¿Sabías que Albert Einstein(1879-1955) dijo...?
El sentido común no es más que un depósito de prejuicios establecidos en la mente antes de cumplir dieciocho años.