ya que nadie hace mi reto y me aburro
me apunto al reto del generador de números primos!
Title Prime Number Generator
:: By Elektro H@cker
::
:: Generador de números primos.
::
:: :: :: :: ::
:Calc
FOR /L
%%#
IN (2,1,
!MinRange!) DO ( FOR /L
%%X IN (2,1,
!MinRange!) DO ( )
)
Lo que hace es una comprobación de cada número (1,2,3,4,5,6,7,8,9,10,etc... hasta llegar al límite de rango)
Por ejemplo la comprobación del número 13 sería:
- obtener todos los números desde el "2" hasta el "12" e ir multiplicando uno a uno para ver si alguno coincide con el "13".
Ejemplo: 2x1, 2x2, 2x3, 2x3...2x13 12x1, 12x2, 12x3...12x13 etc...
Si encuentra la primera coincidencia deja de hacer más (Para que no tarde una eternidad). Si no hay ninguna coincidencia, Obviamente el número es primo.
PD: Cuanto mayor es el número a comprobar, Más tiempo va a tardar ya que tiene que realizar más multiplicaciones (Solo para los números primos).
PD2: Me he mirado está lista para comprobar que hice todo bien, Repito que las matemáticas no son lo mio
, Seguro que hay métodos mejores.
http://www.addedbytes.com/blog/prime-numbers/
Aquí una versión alternativa que no tarda ni 5 segundos en obtener los primos hasta el número 10.000 xDDDDDD
Title Prime Number Generator
REM Versión NOOB XD
:: By Elektro H@cker
::
:: Obtiene una lista de números primos desde el número 2 hasta el número 10.000
:: Nota: Es necesario WGET para usarlo.
WGET -q "http://www.addedbytes.com/blog/prime-numbers/" -O "%TEMP%\Primes.html"
For /F "Tokens=*"
%%a in ('Type "
%TEMP%\Primes.html"
^| Find "
<li"'
) do ( Set "Numbers=
!Numbers:</li>>=!"
Set "Numbers=
!Numbers:</li><li>=, !"
Set "Numbers=
!Numbers:<ul><li>=!"
Set "Numbers=
!Numbers:</li></ul>=!"
Echo "
!NUMBERS!"
| FINDSTR ",.[0-9]" 2
>NUL )
Salu2!
Elektro no he leido tu mensaje entero, pero no será más fácil dejarse de multiplicaciones, iniciar el bucle for desde 0 hasta el máximo de números primos que tu quieres, y hacer un condicional, que si el resto obtenido de dividirlo por 2 (módulo) es diferente de 0, imprima el número? ya que este será primo.
Lo he hecho en python y tarda apenas 4 segundos en sacar todos los primos de 0 hasta 100000, no sé si influirá la rapidez del lenguaje, pero pruébalo y me cuentas