/**
* Archivo: NumeroPerfecto.java
* @author Bello Cerecero
* @version 1.0
* @since 06/11/2011
*/
import javax.swing.JOptionPane;
public class NumeroPerfecto
{
public static void main(String[] args)
{
//declaramos las variables que vamos a ocupar.
String valor;
int entero;
int sumaDivisiones;
//Pedimos el entero al usuario
valor=JOptionPane.showInputDialog("Dame un numero");
//Hacemos la conversion a int.
entero = Integer.parseInt(valor);
//Inicializamos a "sumaDivisiones" en cero.
sumaDivisiones = 0;
//utilizaremos un for
for(int i = 1; i < entero; i++)
{
/*
* ponemos una condicion.
* el simbolo % lo que hace es una division
* pero la diferencia es que retorna el "residuo"
* entonces al poner "(entero % i) == 0"
* lo que queremos decir es que
* "entero" es divisible entre i (sin residuo)
* si esto resulta cierto a "sumaDivisiones"
* lo ira almacenado y si encuentra otro
* numero que sea divisible entre "entero"
* tambien lo guardara pero tambien lo sumara con
* el que se encontro primero, y asi sucesivamente.
*/
if((entero % i) == 0)
sumaDivisiones += i;
//si no se cumple se pasa a la sig iteracion.
}
/*
* ya que finalizamos la evalucion del entero
* ponemos una condicion para saber si la suma de
* los numero que resultaron divisores del entero
* es igual a este mismo.
*/
if(sumaDivisiones == entero)
System.out.println(entero + " es un num perfecto!");
else
System.out.println(entero +" no es un num perfecto!");
}
}
Trate de explicarlo lo mejor que pude (con los comentarios), si tienen alguna duda mandarme un mensaje.
No hay comentarios.:
Publicar un comentario