2009-12-03 17 views
5

Actualmente estoy tratando de escribir algún código en VBA para resolver un problema del Proyecto Euler. He intentado responder a una pregunta que requiere que encuentres números primos que se pueden dividir en un número que no cabe en mucho tiempo. ¿Alguna sugerencia sobre cómo manejar este problema?Manejo de números mayores que Largo en VBA

Sé que puedo dividir el número entre dos variables y lo he hecho para la suma y la resta, pero nunca la división. Cualquier ayuda será apreciada.

+4

primos que son divisibles por un número ...? – Henrik

+0

Creo que sabemos a qué se refería @ Los números primos del agente389 no son divisibles por ningún número que no sea 1 y sí mismo. En realidad, puedes probar esto haciendo un bucle hasta la raíz cuadrada de un número. Probablemente puedas ser aún más rápido que eso, sé que no deberías tener que ir a la mitad de ese número (división, entonces la raíz cuadrada es un poco más rápida). – JonH

+0

Disculpe las palabras equivocadas. He actualizado la pregunta para que quede más clara. – Agent389

Respuesta

1

Básicamente se supone para almacenar los números como texto y crear funciones para las operaciones matemáticas básicas como suma, resta, etc.

Para obtener más información y la aplicación, echar un vistazo aquí: Large Number Arithmetic

+5

debe proporcionar un emore que un enlace – BrainO2

0

Puede escribir una clase bigint que tome char * y almacene cada elemento en un elemento de datos de lista vinculado de tipo int. De esta forma, no importa cuán grande sea el número entero. Sin embargo, no es fácil, estoy hablando de una clase completa.

-2

Uso el tipo de datos "Doble" que toma valores más grandes.

+0

Usar un "Doble" es una mala idea, ya que está limitado a un número determinado de cifras significativas, por lo que perderá precisión con números mayores. – M1chael

0

Puede definir un tipo de datos Decimal (12 Bytes), pero solo dentro de una variante.

Dim i As Variant

i = CDec(i)

Cuestiones relacionadas