Então eu deixei N pra ser qualquer número sabe,percebi q sem o resto do código fica meio estranho segue o resto do código:
'Fazer um algoritmo que receba um número (1 < número <= 50000) e demonstre o primeiro número primo após a ele e o primeiro número primo antes dele.
Sub Primo()
Dim i As Long
Dim n As Long
Dim j As Long
Dim antes As Long
Dim cont As Long
Dim depois As Long
Dim x As Long
n = InputBox("Digite um número entre 1 e 50000: ")
While n < 1
MsgBox (“Digite um valor correto.”)
n = InputBox("Digite um número entre 1 e 50.000: ")
Wend
If n = 2 Then
MsgBox (“Não há número primo antes dele.”)
GoTo depois:
End If
While n > 50000
MsgBox ("Digite um valor correto.")
n = InputBox("Digite um número entre 1 e 50.000: ")
Wend
i = n - 1
For i = i To 2 Step -1
achou = 1
x = i - 1
For j = 2 To x
If i Mod j = 0 Then
achou = 0
j = i + 1
End If
Next
If achou = 1 Then
antes = i
i = 0
End If
Next
MsgBox ("O primo antes do número digitado é: " & antes)
depois:
i = n + 1
For i = i To 50050
achou = 1
x = i - 1
For j = 2 To x
If i Mod j = 0 Then
achou = 0
j = i + 1
End If
Next
If achou = 1 Then
depois = i
i = 50050
End If
Next
MsgBox ("O primo depois do número digitado é: " & depois)
End Sub
até tentei passar pra assembly sozinho mas ele sempre trava em loop infinito