Div 6
Submit solution
Points:
100 (partial)
Time limit:
2.0s
Java 8
4.0s
Python
4.0s
Memory limit:
64M
Author:
Problem type
Allowed languages
Ada, Assembly, Awk, BrainF***, C, C#, C++, Dart, Go, Java, JS, Kotlin, Lua, Pascal, Perl, Prolog, Python, Scala, Swift, VB
¿Puede determinar si un número es divisible por 6?
Entrada
La primera línea de la entrada tiene un entero
Salida
Para cada caso de prueba, si
Ejemplo de entrada
Copy
2
6
4
Ejemplo de salida
Copy
YES
NO
Comments
Y recuerden: Un numero es divisible por 6 si es par y la suma de sus dígitos es divisible por 3 :D (esto te puede servir de ayuda)
(.. ):D
O sea, darle a una variable un tamaño en memoria ajustado al caso?
Para resolver el problema en el que un entero ( N ) puede tener hasta 1000 dígitos, debemos considerar las limitaciones de las variables enteras en los lenguajes de programación convencionales:
Límite de Int: El tamaño máximo de un entero (
int
) es aproximadamente ( 2^{31} ), lo que es insuficiente para contener un número de 1000 dígitos.Límite de Unsigned Long Long: La variable de entero sin signo más grande en muchos lenguajes es
unsigned long long
(ull
), que puede contener valores hasta ( 2^{64} ). Sin embargo, esto sigue siendo insuficiente para manejar un número de 1000 dígitos.Requerimiento de Capacidad: Para manejar un número con hasta 1000 dígitos, necesitamos una variable que pueda almacenar valores alrededor de ( 2^{3322} ). Este es un orden de magnitud mucho mayor que lo que
ull
puede manejar.Excepción de Desbordamiento: Intentar almacenar un número tan grande en un tipo de variable convencional resultará en una excepción de desbordamiento del sistema (
System.OverflowException
).Solución: La única manera de resolver este problema es utilizando una variable que pueda contener más de 1000 espacios para almacenar los dígitos
Espero que esta explicación sea de ayuda :D