Pages

miércoles, 30 de enero de 2013

Calcular los cinco primeros números perfectos Codigo Fuente en C#

Problema
Diseñar un algoritmo que permita calcular los 5 primeros números perfectos (un número es perfecto, cuando la suma de sus divisores, sin incluirlo al número es exactamente el mismo número). El 6 es un número perfecto por sus divisores son 1,2 y 3.

Codigo Fuente en C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Main
{
    class Program
    {
        static void Main(string[] args)
        {
        int []p=new int[11];
         int b=0, a,k,i,x;
         String cad="";
         for (k = 2; k < 702; k++)
         {
             a = 0;
             for (i = 1; i < (k + 2); i++)
             {
                 if (k % i == 0)
                 {
                     a = a + i;
                     if ((a - k) == k)
                     {
                         p[b] = k;
                         b++;
                     }
                 }
             }
         }
         for (x = 0; x < b; x++)
         {
             cad = cad + " " + p[x] + " Es un numero perfecto\n";
         }
         Console.WriteLine(cad);
          Console.ReadLine();
        }
    }
}

1 comentario: