Se siguen reglas genéricas en matemáticas para probar la divisibilidad por 5 en un sistema numérico, ya que los números que terminan en 5 o 0 son divisibles por 5. No importa qué tan grande sea el número. El operador Modulo se usará con mayor frecuencia en la programación cuando se trata de divisibilidad .
El conocimiento del rango de números que los tipos de datos primitivos pueden almacenar es necesario para que el usuario obtenga una mejor comprensión al ingresar una entrada personalizada, ya que los diferentes tipos de datos tienen un rango diferente de valores que ya está definido. Aquí hay un vistazo rápido de los tipos de datos que se usan con más frecuencia.
Tipo de datos | Tamaño | Rango de almacenamiento de números enteros |
---|---|---|
corto | 2 bytes | |
En t | 4 bytes | |
largo | 8 bytes |
Enfoque: cuando se trata de verificar la divisibilidad, se usa el operador aritmtico ‘%’ porque ahora para un numero dado, ya sea cualquiera
Ejemplo:
Ejemplo:
Input n : 464565625 Processing : n % 5 == 0 Output : Yes Input n : 57867456354524524524635602 Processing : n % 5 == 0 Output : No Input n : 346356 56474675364354243220 Processing : n % 5 == 0 Output : Yes
Enfoque 1: el número de entrada no es muy grande
Supongamos primero que el número no es muy grande, por lo que podemos tomar la entrada como un número entero y usar el operador aritmético Modulo para verificar si un número es divisible por 5 o no. Así, si n % 5 == 0, el número es divisible por 5.
A continuación se muestra la implementación de la idea anterior.
Java
// Java program to find if a number // is divisible by 5 or not // importing Classes/Files import java.util.*; class GFG { // Main Driver function public static void main(String[] args) { // Taking any random number to test int n = 464565625; // Checking if remainder is 0 or not // when divided by 5 if (n % 5 == 0) // Print yes iif no is divisible by 5 System.out.println("Yes"); else // Print no if no is not divisible by 5 System.out.println("No"); } }
Yes
¿Qué sucede si el número es una entrada codificada de usuario muy grande? El programa compilará pero lanzará una excepción durante el tiempo de ejecución. Hay un problema al usar el mismo enfoque anterior al tratar con números grandes cuando se trata de la divisibilidad de los números grandes, ya que los tipos de datos existentes discutidos anteriormente tienen un tamaño específico sobre el cual se fija el rango para lo que pueden almacenar. Si se usa el enfoque anterior donde los tipos de datos se ven obligados a almacenar números enteros grandes en tipos de datos primitivos, se genera un error en el tiempo de compilación: ‘Número entero demasiado grande’.
Enfoque 2: el número de entrada no es muy grande
- Use Java Big Integers y verifique la divisibilidad usando el operador de módulo, similar al mencionado anteriormente.
- Usa el hecho de que un número es divisible por 5 si su último dígito es 0 o 5.
Usando el hecho mencionado anteriormente, solo tenemos que verificar si el último dígito es 0 o 5. A continuación se muestra la implementación de la idea anterior.
Java
// Java program to find if a number // is divisible by 5 or not // Importing Classes/Files import java.util.*; public class GFG { // Function for divisibility by 5 static boolean isDivisibleBy5(String num) { // Number of Digits int sz = num.length(); // Checking if last digit is 5 // Checking if last digit is 0 return ( (Integer.parseInt(num.substring(sz - 1)) == 5) || (Integer.parseInt(num.substring(sz - 1)) == 0)); } // Main Driver function public static void main(String[] args) { // Considering any big random number String num = "464565625"; // Condition check for divisibility if (isDivisibleBy5(num)) // Print yes if no is divisible System.out.println("Yes"); else // Print no if no is not divisible System.out.println("No"); } }
Yes