elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Algoritmo numeros primos [Batch]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algoritmo numeros primos [Batch]  (Leído 12,626 veces)
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Algoritmo numeros primos [Batch]
« en: 14 Abril 2009, 04:56 am »

Código
  1. @echo off
  2. :: Algoritmo de numeros primos, Leo Gutierrez R.
  3. :code
  4. set /p "numero=Numero : "
  5. if not defined numero (goto:code)
  6. set /a "contador=1"
  7. set /a "divisores=0"
  8. set /a "numero_=numero+1"
  9. set /a "suma=0"
  10. :bucle
  11. if %contador% equ %numero_% (goto:end)
  12. set /a "operacion=%numero% %% %contador%"
  13. if %operacion% equ 0 (
  14. set /a "divisores+=1"
  15. set /a "suma+=%contador%"
  16. )
  17. set /a "contador+=1"
  18. goto:bucle
  19. :end
  20. set /a "_=%numero%+1"
  21. if %suma% equ %_% (echo.Es primo) else (echo.No es primo)
  22. goto:eof

Salida:
Código:
C:\>code
Numero : 2
Es primo

C:\>code
Numero : 4
No es primo

C:\>code
Numero : 19
Es primo

C:\>code
Numero : 23
Es primo

C:\>code
Numero : 3
Es primo

C:\>code
Numero : 5
Es primo

C:\>


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
SmartGenius

Desconectado Desconectado

Mensajes: 181


:P


Ver Perfil WWW
Re: Algoritmo numeros primos [Batch]
« Respuesta #1 en: 14 Abril 2009, 05:20 am »

Jeje..muy bien  :D

Podrias implementarlo completo ?.... :rolleyes:

http://foro.elhacker.net/scripting/batch_algoritmo_de_numeros_primos-t235233.0.html

Saludos.

PD: Que conste que me dijiste que respondiera en todos  :xD


En línea


leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Algoritmo numeros primos [Batch]
« Respuesta #2 en: 14 Abril 2009, 05:31 am »

Podrias implementarlo completo ?.... :rolleyes:
Tal ves si, pero por ahora estoy ocupado con algunos problemas de la USACO.

Saludos.
« Última modificación: 14 Abril 2009, 05:32 am por Leo Gutierrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Algoritmo numeros primos [Batch] [Actualizado]
« Respuesta #3 en: 15 Junio 2009, 05:14 am »

Aqui esta el nuevo algoritmo, más optimizado:
Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :code
  4. set /p "numero=Numero : "
  5. if not defined numero (goto:code)
  6. for /l %%_ in (1,1,%numero%) do (
  7. set /a "operacion=%numero%%%%%_"
  8. if !operacion! equ 0 set /a "divisores+=1"
  9. )
  10. if %divisores% equ 2 (echo.Es primo) else (echo.No es primo)
  11. pause>nul
  12. exit /b 0

Salida:

Código:
C:\>code
Numero : 2
Es primo

C:\>code
Numero : 21
No es primo

C:\>code
Numero : 71
Es primo

C:\>
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
SmartGenius

Desconectado Desconectado

Mensajes: 181


:P


Ver Perfil WWW
Re: Algoritmo numeros primos [Batch]
« Respuesta #4 en: 15 Junio 2009, 20:44 pm »

Muy Bueno Brother, la Implementacion del FOR lo deja aun mas optimizado...

http://es.wikipedia.org/wiki/N%C3%BAmero_primo

Con esto me he dado cuenta que mi codigo estaba errado al tomar el 1 como primo, pues no lo es aunque su regla se aplique.  ;D

Ahora, para descomponer un numero en sus factores primos.

Código
  1. @echo off
  2. ::Descomposicion En Factores Primos
  3. setlocal enabledelayedexpansion
  4.  
  5. Set /a "C=%1*1"
  6. If not %C% EQU %1 (Echo.No Ha Introducido un Numero..&Goto :Eof)
  7. If "%1"=="1" (Echo.1&Goto :Eof)
  8. Set Lim=%1
  9. for /l %%n in (1,1,%Lim%) do (
  10. call :EsPrimo %%n
  11. if "!Primo!"=="True" Call :DescPrimo %Lim% %%n
  12. )
  13. Echo.%Op:~1%
  14. Goto :Eof
  15.  
  16. :EsPrimo
  17. set divisores=
  18. set "numero=%1"
  19. for /l %%_ in (1,1,%numero%) do (
  20. set /a "operacion=%numero%%%%%_"
  21. if !operacion! equ 0 set /a "divisores+=1"
  22. )
  23. if %divisores% equ 2 (Set Primo=True) else (Set Primo=False)
  24. Goto :Eof
  25.  
  26. :DescPrimo
  27. Set Val=%1
  28. :Desc2
  29. Set Var=%Op%
  30. Set /a C=%Var:~1%
  31. If %C% GEQ %Lim% Goto :Eof
  32. Set /a Mod=(%Val%)%%(%2)
  33. If %Mod% EQU 0 set Op=%Op%*%2&Set /a Val=(%Val%)/(%2)&Goto :Desc2
  34. Goto :Eof

Saludos.  ::)
En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con crear un batch que genere un .txt con números que incrementen
Scripting
.:UND3R:. 4 5,765 Último mensaje 4 Julio 2011, 08:09 am
por .:UND3R:.
Sencillo Algoritmo de Números Pseudoaleatorios [Aporte]
.NET (C#, VB.NET, ASP)
Keyen Night 0 2,698 Último mensaje 17 Septiembre 2011, 21:31 pm
por Keyen Night
[Reto Batch] Generador de numeros primos
Scripting
Stakewinner00 8 8,875 Último mensaje 23 Julio 2012, 02:51 am
por AgnesBlack
[Reto Batch]Algoritmo Quicksort
Scripting
Binary_Death 3 3,911 Último mensaje 23 Julio 2012, 02:10 am
por AgnesBlack
Duda algoritmo basado en numeros irracionales
Criptografía
Stakewinner00 3 4,125 Último mensaje 2 Septiembre 2013, 08:57 am
por El Benjo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines