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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  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 17,325 veces)
e500

Desconectado Desconectado

Mensajes: 83


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

Código:
Private Function CheckPrimality(ByVal lNum As Long) As Boolean
    Dim i       As Long
    Dim lSqr    As Long
       
    If lNum Mod 2 = 0 Then GoTo Composite:

    lSqr = Sqr(lNum)

    i = 3
    Do Until i > lSqr
        If lNum Mod i = 0 Then GoTo Composite:
        i = i + 2
    Loop
   
Prime:
    CheckPrimality = True
    Exit Function
Composite:
    If lNum = 2 Then CheckPrimality = True
End Function

Exelente COBEIN, este es más rápido

Saludos


En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [SNIPPET+RETO] IsItPrime() - Comprobar si un numero es primo
« Respuesta #11 en: 8 Julio 2010, 12:47 pm »

Muy bueno Cobein :) No habia pensando que podrian saltarse los pares :laugh: ;)

He optimizado el primero que puse:
Código
  1. Public Function IsItPrime(ByVal lNumber As Long) As Boolean
  2.    Dim i       As Long
  3.  
  4.    If (lNumber > 2) And (lNumber And 1) Or (lNumber = 2) Then
  5.        For i = 3 To Sqr(lNumber) Step 2
  6.            If (lNumber Mod i) = 0 Then GoTo Exit_
  7.        Next i
  8.        IsItPrime = True
  9.    End If
  10. Exit_:
  11. End Function

Saludos :D


« Última modificación: 8 Julio 2010, 13:37 pm por Karcrack » En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [SNIPPET+RETO] IsItPrime() - Comprobar si un numero es primo
« Respuesta #12 en: 8 Julio 2010, 14:48 pm »

Una pregunta Karcrack, porque pones que vaya a la etiqueta Exit_ y no pones Exit Function??

Salu2!
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [SNIPPET+RETO] IsItPrime() - Comprobar si un numero es primo
« Respuesta #13 en: 8 Julio 2010, 14:53 pm »

Una pregunta Karcrack, porque pones que vaya a la etiqueta Exit_ y no pones Exit Function??

Salu2!
No lo habia pensado :laugh: , pero bueno, no interfiere en la velocidad, solo se llama una vez :P
En línea

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 #14 en: 8 Julio 2010, 16:41 pm »

Una pregunta Karcrack, porque pones que vaya a la etiqueta Exit_ y no pones Exit Function??

Salu2!
No lo habia pensado :laugh: , pero bueno, no interfiere en la velocidad, solo se llama una vez :P

FAIL! :xD

Che la verdad muy bueno estos pequeños "concursos" de algoritmos que estan proponiendo ultimamente. Lastima que no sea muy bueno precisamente en algoritmos XD
En línea

Dreamaker

Desconectado Desconectado

Mensajes: 277



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

Mmm estaría bueno un topic lleno de ejercicios de algoritmos aportados por todos (no se si hay alguno ya), por ejemplo averiguar los primeros 100 números vampiros y cosas así, son muy buenas cosas para practicar programación, obviamente en VB :xD

PD: Deberían comprometerse todos a agregar ejercicios y sólo eso, las dudas en topics aparte
En línea

cbug

Desconectado Desconectado

Mensajes: 147



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

En la sección Ejercicios de programación existen muchos ejercicios, que se pueden resolver en cualquier lenguaje, ya que vb no es el único.
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


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

En la sección Ejercicios de programación existen muchos ejercicios, que se pueden resolver en cualquier lenguaje, ya que vb no es el único.
:laugh: :laugh: :laugh: En serio? :o :o
En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



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

En la sección Ejercicios de programación existen muchos ejercicios, que se pueden resolver en cualquier lenguaje, ya que vb no es el único.
:laugh: :laugh: :laugh: En serio? :o :o
jaaaaaaaaajajajja :laugh: :laugh:
A proposito, creo que se podria mejorar las funciones aun mas Karcrack, me explico:
Segun lo que hizo Cobein no comprobaba los numeros pares y eso ahorra trabajo, pero teniendo en cuenta que un numero primo solo puede acabar en:
Código:
1,3,7,9
Con la funciones que hay se comprobarian los imapares:
Código:
1,3,5,7,9
Pero todo numero que acabe en 5 es imposible que sea primo, me explico?
Corregidme si me equivoco... :P

Salu2!
En línea

cobein


Desconectado Desconectado

Mensajes: 759



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

*PsYkE1* suena correcto lo que decis, el problema, en mi opinion es que para no comparar algun numero terminado en 5, agregarias mas operaciones que simplemente comprobandolo.
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.
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