/** * 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