codigo para calcular los numeros primos

Iniciado por minari02, 24 Diciembre 2013, 01:00 AM

0 Miembros y 4 Visitantes están viendo este tema.

ivancea96

Ei, no me ignoreis! Quiero ver como os revienta la RAM usando eso para 10^12 xD

amchacon

Cita de: ivancea96 en 27 Diciembre 2013, 23:21 PM
Ei, no me ignoreis! Quiero ver como os revienta la RAM usando eso para 10^12 xD
Te he contestado, 10^12 se sale del rango de una variable int xD.

Y sería una tabla de 900 mb, yo desde luego ahí dejaría de crearme la tabla de erastotenes y haría la función esPrimo().
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

ivancea96

#22
Long long :D

Y, si mis calculos no son erróneos:

Citar8  * 10^12 bytes
8*10^9 kilobytes
8*10^6 megabytes
8*10^3 Gigabytes
8*10 terabytes

:O

leosansan

Cita de: ivancea96 en 27 Diciembre 2013, 23:27 PM
Long long :D

Y, si mis calculos no son erróneos:


10^12 supera las cifras del long long int.

¡¡¡¡ Saluditos! ..... !!!!


ivancea96

las cifras de long long int, al menos en mi pc, son de 10^18 x)

leosansan

#25
Cita de: ivancea96 en 28 Diciembre 2013, 00:37 AM
las cifras de long long int, al menos en mi pc, son de 10^18 x)

Hablo de cifras como entero, que es lo que procede en los primos. ¿Qué maquinón estas usando y qué compilador?. El mío es de 64 bits y Core I7 con 8 Gb de memoria y un tera de disco duro. Tiene tres añitos pero creo que aún no está obsoleto.

Mis limites para un int son:



Sería cuestión de probar con long long int.

P.D:Ya probado, el máximo que admite es 10^8.



ivancea96

Como se hace para int, se puede hacer para long long.
long long int -> 8 bytes
8 bytes -> 64 bits
2^64 = 18.446.744.073.709.551.616
18 trillones.

minari02

oooh...  :o :o :o  ustedes son medio genios no?? jajjaja... esto solo me hace pensar que me hace falta como 2 años para poder alcanzarlos o estar cerca...  :P :P :P

leosansan

Cita de: ivancea96 en 28 Diciembre 2013, 01:20 AM
Como se hace para int, se puede hacer para long long.
long long int -> 8 bytes
8 bytes -> 64 bits
2^64 = 18.446.744.073.709.551.616
18 trillones.

Aproximadamente la mitad para los positivos y la otra mitad para los negativos.

El problema no es imprimir 10^18, que si lo acepta, sino que a partir de 10^9 malloc no lo acepta, lo que impone esa limitación en el consiguiente cálculo de los primos. Presupongo que ello se debe al uso de la memoria y en 10^9 ya estaríamos hablando de Gigabyte, si no me salen mal las cuentas con la limitación correspondiente de la memoria en uso por el ordenador.

¡¡¡¡ Saluditos! ..... !!!!

:rolleyes: ;) ;) ;) :rolleyes:


ivancea96

Cita de: minari02 en 28 Diciembre 2013, 01:25 AM
oooh...  :o :o :o  ustedes son medio genios no?? jajjaja... esto solo me hace pensar que me hace falta como 2 años para poder alcanzarlos o estar cerca...  :P :P :P

Nah, son cosas q se van aprendiendo con el tiempo. Más básicas de lo que crees jaja


PD: Leosansan, me apasiona tu "firma" :D