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 especificando el número de casos de prueba. Las siguientes líneas tendrán un entero con dígitos a lo sumo.
Salida
Para cada caso de prueba, si es divisible por , imprima una línea con la palabra "YES" si no, imprima la palabra "NO".
Ejemplo de entrada
2
6
4
Ejemplo de salida
YES
NO
Comments
(.. ):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