Si necesita hacer esto por razones prácticas, debe usar una biblioteca de “entero de precisión arbitraria” o “gran número” o “gran número” en el lenguaje en el que se está desarrollando.
En las versiones modernas de Python, esto está integrado para tipos enteros, por lo que puede escribirlo directamente en el intérprete o en un código como:
2 ** 511 + 2 ** 510 => 10055855947456947824680518748654384595609524365444295033292671082791323022555160232601405723625177570767523893639864538140315412108959927459825236756
- ¿Qué es la representación de colas usando array?
- ¿Existe evidencia de que el algoritmo de sugerencia de música basada en el genoma de Pandora es mejor que los algoritmos de recomendación estándar?
- Cómo calcular dos nodos distantes mínimos a partir de dos conjuntos de nodos en un gráfico
- ¿Cuál es el error lógico en mi siguiente código para la multiplicación de karatsuba?
- ¿Cómo encontrar una ruta con la suma máxima en un BST (no BT)?
En Java hay:
BigInteger (Java Platform SE 7)
Reutilizar una biblioteca no solo es más fácil, sino que será dramáticamente menos propenso a errores y probablemente más eficiente que lo que cocinaría usted mismo.
Si está haciendo esto con fines educativos y desea implementarlo usted mismo, considere lo que necesita:
- Asumamos que representaremos los números en binario
- Entonces necesitamos una forma de almacenar 512 1’s y 0’s
- Necesitamos una forma de leer y luego n’th 1 o 0 de cualquier número
La mejor opción aquí depende del idioma, pero una serie de enteros es bastante buena (si es un poco más grande de lo estrictamente necesario).
Sería posible saltar a través de un montón de aros para usar una estructura de datos de tamaño de alrededor de 512 bits para almacenar este número, pero hacerlo será mucho más complejo que solo usar 512 enteros.