Autor
|
Tema: [SNIPPET+RETO] IsItPrime() - Comprobar si un numero es primo (Leído 17,215 veces)
|
e500
Desconectado
Mensajes: 83
|
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
Mensajes: 2.416
Se siente observado ¬¬'
|
Muy bueno Cobein No habia pensando que podrian saltarse los pares He optimizado el primero que puse: Public Function IsItPrime(ByVal lNumber As Long) As Boolean Dim i As Long If (lNumber > 2) And (lNumber And 1) Or (lNumber = 2) Then For i = 3 To Sqr(lNumber) Step 2 If (lNumber Mod i) = 0 Then GoTo Exit_ Next i IsItPrime = True End If Exit_: End Function
Saludos
|
|
« Última modificación: 8 Julio 2010, 13:37 pm por Karcrack »
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Una pregunta Karcrack, porque pones que vaya a la etiqueta Exit_ y no pones Exit Function??
Salu2!
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Una pregunta Karcrack, porque pones que vaya a la etiqueta Exit_ y no pones Exit Function??
Salu2!
No lo habia pensado , pero bueno, no interfiere en la velocidad, solo se llama una vez
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Una pregunta Karcrack, porque pones que vaya a la etiqueta Exit_ y no pones Exit Function??
Salu2!
No lo habia pensado , pero bueno, no interfiere en la velocidad, solo se llama una vez FAIL! 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
Mensajes: 277
|
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 PD: Deberían comprometerse todos a agregar ejercicios y sólo eso, las dudas en topics aparte
|
|
|
En línea
|
|
|
|
cbug
Desconectado
Mensajes: 147
|
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
Mensajes: 2.416
Se siente observado ¬¬'
|
|
|
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
jaaaaaaaaajajajja 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: Con la funciones que hay se comprobarian los imapares: Pero todo numero que acabe en 5 es imposible que sea primo, me explico? Corregidme si me equivoco... Salu2!
|
|
|
En línea
|
|
|
|
cobein
|
*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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Verdad que es imposible el algoritmo numero primo sin usar ciclos, ni funciones.
« 1 2 »
Programación General
|
Aikanáro Anário
|
11
|
11,557
|
20 Agosto 2011, 01:12 am
por someRandomCode
|
|
|
Factor primo más grande de un número muy largo
Programación C/C++
|
DickGumshoe
|
9
|
9,039
|
5 Julio 2012, 04:01 am
por do-while
|
|
|
Descubren el mayor número primo: 17 millones de dígitos
Noticias
|
wolfbcn
|
2
|
2,711
|
7 Febrero 2013, 22:31 pm
por anonimo12121
|
|
|
Como saber si un numero grande es primo o no
Dudas Generales
|
Luish@o
|
1
|
7,189
|
18 Septiembre 2016, 18:25 pm
por engel lex
|
|
|
AYUDA! Verificar si un numero es par/impar , compuesto/primo
Programación C/C++
|
NicoSanhueza
|
1
|
1,907
|
7 Mayo 2018, 17:51 pm
por Serapis
|
|