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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [SNIPPET+RETO] IsItPrime() - Comprobar si un numero es primo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 [4] Ir Abajo Respuesta Imprimir
Autor Tema: [SNIPPET+RETO] IsItPrime() - Comprobar si un numero es primo  (Leído 11,427 veces)
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [SNIPPET+RETO] IsItPrime() - Comprobar si un numero es primo
« Respuesta #30 en: 9 Julio 2010, 21:16 pm »

Felicidades, fue divertido :P Habran mas de estos seguro >:D :xD

COBEIN WINS! Fatality :xD

Ps.... estare esperando haber si puedo participar :)

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
 :¬¬



En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: [SNIPPET+RETO] IsItPrime() - Comprobar si un numero es primo
« Respuesta #31 en: 10 Julio 2010, 05:31 am »

Hay un error en el codigo, despues lo corrijo.


En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Karcrack


Desconectado Desconectado

Mensajes: 2.419


Se siente observado ¬¬'


Ver Perfil
Re: [SNIPPET+RETO] IsItPrime() - Comprobar si un numero es primo
« Respuesta #32 en: 30 Agosto 2010, 22:16 pm »

Hay un error en el codigo, despues lo corrijo.
Bueno, el error para quien quiera saberlo es que comprobaba mal la multiplicidad de 5...


Me he quedado hoy pensando... y hay una forma realmente sencilla de obtener el ultimo digito de una cifra... sin usar cadenas de textoooo :o Simplemente hay que obtener el resto al dividir por 10 (aka Mod 10) :laugh:

He hecho este codigo :D, si no me equivoco es la mas rapida (sin contar la de Cobein, que no acaba de funcionar)
Código
  1. Public Function IsItPrime(ByVal lNumber As Long) As Boolean
  2.    Dim i       As Long
  3.  
  4.    If lNumber < 10 Then
  5.        If lNumber = 2 Then IsItPrime = True: Exit Function
  6.        If lNumber = 5 Then IsItPrime = True: Exit Function
  7.        If lNumber = 1 Then Exit Function
  8.    ElseIf (lNumber And 1) Then
  9.        Select Case (lNumber Mod 10)
  10.            Case 1, 3, 7, 9
  11.                For i = 3 To Sqr(lNumber) Step 2
  12.                    If (lNumber Mod i) = 0 Then Exit Function
  13.                Next i
  14.                IsItPrime = True
  15.        End Select
  16.    End If
  17. End Function
En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [SNIPPET+RETO] IsItPrime() - Comprobar si un numero es primo
« Respuesta #33 en: 30 Agosto 2010, 22:29 pm »

WOow que bueno!! :D
A ver si cuando acabe examenes me meto a tope con bytes.  :)
Tu code es muy sencillo y eficaz! :D

Una cosilla de nada:
Si quitas el indicador en el For ahorras un poquitin (muy poco) de tiempo... ;)
http://foro.rthacker.net/programacion-visual-basic/como-acelerar-codigo-en-vb6/

DoEvents¡! :P
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.419


Se siente observado ¬¬'


Ver Perfil
Re: [SNIPPET+RETO] IsItPrime() - Comprobar si un numero es primo
« Respuesta #34 en: 30 Agosto 2010, 22:35 pm »

Una cosilla de nada:
Si quitas el indicador en el For ahorras un poquitin (muy poco) de tiempo... ;)
http://foro.rthacker.net/programacion-visual-basic/como-acelerar-codigo-en-vb6/

DoEvents¡! :P
Estas equivocado :P
Código:
http://www.xbeat.net/vbspeed/c_ForNext.htm
Código:
Despite all rumors: Next or Next i does NOT matter at all!! The minimal differences you see in the timings above are totally insignificant: you could produce any possible ranking order by running the same test over and over again long enough.

Esa pequeña diferencia de tiempo va a favor de uno u otro dependiendo de cada vez que lo ejecutas...
En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [SNIPPET+RETO] IsItPrime() - Comprobar si un numero es primo
« Respuesta #35 en: 30 Agosto 2010, 22:37 pm »

 :o
Ok tu ganas... :silbar:

DoEvents¡! :P
En línea

Páginas: 1 2 3 [4] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines