miércoles, 8 de julio de 2026

Pedir un número y determinar si un número es perfecto en Java

Código del ejercicio:

package ejercicio;

import java.util.Scanner;

public class Ejercicio {

    public static void main(String[] args) {
        int ac = 0, n, i, r;
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese un número: ");
        n = sc.nextInt();
        i = n - 1;
        while(i > 0){
            r = n % i;
            if(r == 0){
                ac += i;
            }
            i--;
        }
        if(n == ac){
            System.out.print("El número es perfecto.");
        }else{
            System.out.print("El número no es perfecto.");
        }
    }

}

Definición de los códigos del ejercicio:

import java.util.Scanner; --> Importación explícita de Scanner.
Scanner sc = new Scanner(System.in); --> objeto de Scanner con nombre sc.
Scanner --> clase Scanner nos permite ingresar datos por teclado.
new --> palabra reservada que instancia un objeto de la clase Scanner.
System.in --> parámetro que indica de donde proceden los datos, en este caso del teclado.
System.out.print() --> imprime el texto en la consola y el cursor permanece al final del texto en la consola.
int --> dato entero de 32 bits.
nextInt() --> lee un número entero desde consola (teclado).
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
% --> el operador de modulo ( % ) devuelve el resto de la división.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
+= --> el operador de asignación de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
-- --> el operador de decremento (--) disminuye (o resta de a uno) su operando y retorna un valor.

Explicación del Código:

¿Qué hace este programa?

Este programa solicita al usuario un número entero y verifica si es un número perfecto. Un número es perfecto cuando la suma de todos sus divisores positivos (excepto el mismo número) es igual al número original.

Ejemplo:

El número 6 tiene como divisores:

1 + 2 + 3 = 6

Como la suma es igual al número, 6 es un número perfecto.

Explicación sencilla del código

Código Explicación
import java.util.Scanner; Importa la clase Scanner para poder leer datos escritos por el usuario.
public class Ejercicio Define la clase principal del programa.
public static void main(String[] args) Es el método principal donde inicia la ejecución del programa.
int ac = 0, n, i, r; Declara las variables:
  • ac: acumula la suma de los divisores.
  • n: guarda el número ingresado.
  • i: sirve para recorrer los posibles divisores.
  • r: almacena el residuo de la división.
Scanner sc = new Scanner(System.in); Crea el objeto que permite leer datos desde el teclado.
System.out.print("Ingrese un número: "); Muestra un mensaje solicitando un número.
n = sc.nextInt(); Lee el número ingresado y lo guarda en la variable n.
i = n - 1; Comienza a revisar los divisores desde el número anterior a n.
while(i > 0) Recorre todos los números desde n-1 hasta 1.
r = n % i; Calcula el residuo de dividir n entre i.
if(r == 0) Si el residuo es cero, significa que i es un divisor del número.
ac += i; Suma el divisor encontrado al acumulador ac.
i--; Disminuye el valor de i para revisar el siguiente posible divisor.
if(n == ac) Compara si la suma de los divisores es igual al número ingresado.
System.out.print("El número es perfecto."); Se muestra cuando el número es perfecto.
else Se ejecuta cuando la condición anterior es falsa.
System.out.print("El número no es perfecto."); Indica que el número no es perfecto.

Funcionamiento paso a paso

  1. Solicita un número al usuario.
  2. Empieza a revisar todos los números menores que él.
  3. Comprueba cuáles son divisores utilizando el operador %.
  4. Suma todos los divisores encontrados.
  5. Compara la suma con el número original.
  6. Si ambos son iguales, el número es perfecto; de lo contrario, no lo es.
Resumen:

El programa encuentra todos los divisores de un número (excepto el mismo número), los suma y verifica si esa suma es igual al número ingresado. Si lo es, el número se considera perfecto; en caso contrario, no lo es.

No hay comentarios.:

Publicar un comentario

Mostrar los x primeros números de la siguiente serie: 2,3,6,7,14,15,30,31,62,63,... en Java

Código del ejercicio: package ejercicio; import java.util.Scanner; public class Ejercicio {     public static void main...

Copyright ©2025 Ejercicios de programación. Todos los derechos reservados. ❤️