Temas

Solo disponible en BuenasTareas
  • Páginas : 2 (382 palabras )
  • Descarga(s) : 0
  • Publicado : 15 de noviembre de 2011
Leer documento completo
Vista previa del texto
Hola Estephanie:

Los números amigos son realmente los números demonio; ya probé en ambos casos las rutinas para este tipo de números, obteniendo el mismo resultado.
El programa inicia un pocorápido y después, aparentemente se alenta y no hace nada; esto es debido a que conforme la numeración aumenta el proceso de verificación tarda para cada número. Por eso decidí poner la leyenda “Espere,procesando…” cada vez que coincide la comparación.
El código es el siguiente:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
classProgram
{
static void Main(string[] args)
{
long n1, n2, acum1, acum2, i;
//Iniciamos en el número 2 hasta el 100000
for (n1 = 2; n1 < 100000; n1++){
acum1 = 0; //Este acumulador sumará los divisores que controla la variable n2

for (n2 = 1; n2 < n1; n2++)
if (n1 % n2 == 0)acum1 += n2; //Si el residuo de la división entera es igual a cero, se acumula el divisor

if (acum1 == n1) //Si el número n1 es igual al acumulador de divisores se trata de un númeroperfecto
{
Console.WriteLine("Número perfecto: {0}", n1);
Console.WriteLine("Espere, procesando...");
}
}Console.WriteLine("Presione <Enter> para continuar");
Console.ReadLine();
//Se inicia desde el número 2 hasta wl 100000
for (n1 = 2; n1 < 100000; n1++){
acum1 = 0; acum2 = 0;
for (i = 1; i <= n1 / 2; i++)
{
if (n1 % i == 0)acum1 = acum1 + i;
}
//Lo anterior es que I inicia en 1 hasta el número divido entre 2 y se procede a acumular el divisor en acum1, cuando el residuo de la divisón entera sea...
tracking img