Ajuda - Busca - Membros - Calendário
Versão Completa: Como Descobrir Se Nº Digitado é Número Primo?
Fórum Script Brasil > Programação & Desenvolvimento > .NET
Doug Cruz
Bom , sou novo na programação e estou aprendendo VB.NET e gostaria que alguém me ajudasse se possível?!
Preciso fazer um programa onde o usuário digita em uma Inputbox o número e em uma textbox o programa informa
se o número digitado pelo usuário é primo ou ñ!
Será que alguém pode me dar uma dica ou me ajudar??
Tá aí meu código :
Private i As Integer

Private sInput As String


Private Sub btnCalcula_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcula.Click
sInput = InputBox("Digite um número:")
calcular()


End Sub

Public Sub calcular()
Try

'Sei que tenho que fazer um laço "For...Next" aqui
'Só ñ sei como devo fazer



Catch ex As Exception
MsgBox(ex.Message, , "Ocorreu um erro!")
End Try

End Sub

bom, obrigado desde já!
[]'s
Graymalkin
A *primeira* coisa que você deve saber é como se descobre se um número é primo ou não. Depois disso você vai se preocupar em *como* fazer.
Uma forma simples de se fazer é testar a divisão do número por todos os primos anteriores menores que a raíz quadrada do número. Se ele não for divisível por nenhum deles, então ele é primo. Obviamente isso não vale para o 2, que é o primeiro primo (e curiosamente também é o único que é par). E também não existe primo menor que a raíz quadrada de 3 (que é o segundo primo), portanto os dois primeiros você já tem pré-fixados.
Agora, alguma base para você trabalhar:

* use o operador Mod para saber se o número é divisível ou não. Ele retorna o resto (Modulus) da operação, portanto se for 0 é porque é divisível;
* use a função Math.Sqrt() para determinar a raíz quadrada de um valor;

Qualquer dúvida, 'stamos aí.

Abraços,

Graymalkin
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.