Buenas;
Bien, pues estoy intentando hacer un código simple que muestre los números primos hasta un límite marcado por el usuario. No me interesan códigos que hagan esto, ya encontré una que funciona al 100%, la cuestión es que no logro ver qué falla en mi código... Sé que es muy fácil, pero llevo rato (y demasiado) intentado resolverlo.
Suponiendo que tengo un List1 (donde se mostrarán los números primos de la secuencia), un TextBox (aquí el usuario pondrá el número límite) y un Command1 (el cual realizará la acción al cliquear en él).
Private Sub Command1_Click()
Dim n1 As Long
Dim n2 As Long
Dim e As Boolean
Dim i
n1 = Text1.Text
While n1 > 0
e = True
n2 = n1 - 1
For i = 2 To n2
If n1 / n2 <> CInt(n1 / n2) Then
e = False
End If
Next i
If e = True Then
List1.AddItem (n1)
End If
n1 = n1 - 1
Wend
End Sub
Le estaría muy agradecido a quien pudiera señalarme el fallo,
Gracias de antemano, un saludo
Herio
Private Sub Command1_Click()
Dim n1 As Long
Dim n2 As Long
Dim e As Boolean
Dim i
n1 = Text1.Text
While n1 > 0
e = True
n2 = n1 - 1
i = 2
While i <= n2 And e '<----- Lo cambie a while para que no siga comprobando despues de saber que el numero no es primo
If n1 Mod i = 0 Then e = False '<----- el error, no se por que pero aqui era, no tengo mucho tiempo ya que me estan informando que ya estan listas las tortillas de harina
i = i + 1
Wend
If e = True Then
List1.AddItem (n1)
End If
n1 = n1 - 1
Wend
End Sub
;)
Gracias ignorantev1.1, me sirvieron mucho tus aclaraciones...
Lo único que cambie será el último If (para que no me salga el uno)
If e = True And n1 <> 1 Then
Un saludo,
Herio
PD Espero que las tortillas de harina estuvieran buenas... :rolleyes: