Software y Aplicaciones Web

Blog de desarrollo de software y aplicaciones web

Comentarios Recientes

Comment RSS

MSDN Home Page (Argentina)


C# Corner


AspAlliance.com

Declaración

Las opiniones en este blog se proporcionan "TAL CUAL", sin garantías,  no confieren derechos y no reflejan, necesariamente, la opinión de quienes me contratan.
Algunas cuestiones que se comentan en el blog no son reales, cualquier similitud con alguna persona viva o muerta no es más que una coincidencia, tampoco significa que necesite terapia, soy asi.

© Copyright 2007-2010

Propaganda

Este sitio implementa publicidad basada en intereses
Jul
31.
2009

  Número Perfecto

En este post se muestra el código para determinar si un número es o no perfecto.

Otra vez se trata de un ejercicio del cursos Programador .NET en Becas Control+F

   1:      /// <summary>
   2:      /// Un número entero se dice que se trata de un número perfecto si sus factores, 
   3:      /// incluyendo a 1 (pero excluyendo en el número mismo), suman igual que el número. 
   4:      /// Por ejemplo, 6 es un número perfecto porque 6 = 1+2+3. 
   5:      /// Escriba una función perfect que determine si el parámetro number es un número 
   6:      /// perfecto. Utilice esta función en un programa que determine e imprima todos los 
   7:      /// números perfectos entre 1 y 1000. 
   8:      /// Imprima los factores de cada número perfecto para confirmar que el numero de verdad 
   9:      /// es perfecto.Ponga en acción la potencia de su computadora para probar números más 
  10:      /// grandes que 1000
  11:      /// </summary>
  12:      private static void Ejercicio3()
  13:      {
  14:        Console.Clear();
  15:        Console.WriteLine("Laboratorio 4 - Ejercicio 3");
  16:   
  17:        for (int i = 1; i <= 10000; ++i)
  18:        {
  19:          if (Perfect(i))
  20:            MostrarDivisores(i);
  21:        }
  22:        Console.ReadKey();
  23:      }
  24:      /// <summary>
  25:      /// Determina si un número es perfecto, un numero es perfecto
  26:      /// si el número es igual a la suma de sus divisores excluyendo
  27:      /// el mismo número. Ejemplo 6 = 1 + 2 + 3
  28:      /// </summary>
  29:      /// <param name="number">Número a controlar</param>
  30:      /// <returns>Verdadero si el número es perfecto</returns>
  31:      private static bool Perfect(int number)
  32:      {
  33:        if (number < 1)
  34:          return false;
  35:        int sum = 0;
  36:        for (int i = 1; i <= (number / 2); ++i)
  37:        {
  38:          if ((number % i) == 0)
  39:            sum += i;
  40:        }
  41:        return number == sum;
  42:      }
  43:   
  44:      /// <summary>
  45:      /// Muestra los divisores de un número y determina si el número
  46:      /// es perfecto.
  47:      /// </summary>
  48:      /// <param name="number">Número a controlar</param>
  49:      private static void MostrarDivisores(int number)
  50:      {
  51:        if (number < 1)
  52:          return;
  53:        int sum = 0;
  54:        Console.Write("Divisores de {0,8} :", number);
  55:        for (int i = 1; i <= (number / 2); ++i)
  56:        {
  57:          if ((number % i) == 0)
  58:          {
  59:            Console.Write(" {0} ", i);
  60:            sum += i;
  61:          }
  62:        }
  63:        if (number == sum)
  64:          Console.WriteLine("Es perfecto");
  65:        else
  66:          Console.WriteLine("NO ES perfecto");
  67:      }

A ver si alguien tiene otra idea de cómo hacer esto.

 




Categorías: ASP.NET | Programacion



Comments (4) -

Pedro Argentina

Saturday, August 01, 2009 12:21 AM

Pedro

Lo voy a probar y luego voy a versi puedo aportar algo, hasta luego ingeniero

jtentor

Saturday, August 01, 2009 12:33 AM

jtentor

Me apuré a publicar la solución, porque este ejercicio lo tienen que hacer el lunes.
De manera que ahora vas a tener que modificarlo para ver cuanto tarda la computadora en encontrar los 10000 primeros numeros primos Smile

Matias Argentina

Monday, August 03, 2009 3:06 PM

Matias

He intentado transcribir este codigo de C# a .Net, pero no hay caso...

jtentor

Wednesday, August 05, 2009 9:47 PM

jtentor

Matias, cómo que no se puede si está en C# y eso es .NET !!!
Probablemente lo que te pasa es que aquí está publicado el ejercicio, te falta todo el esquema de arranque de un programa:

using System;
namespace Laboratorio4_CS
{
  class Program
    {
      static void Main(string[] args)
        {
          Ejercicio4(); // Aquí es donde se llama al ejercicio publicado
        }
    } // cierra class Program
} // cierra namespace

Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading