Problema - Nivel 5

Problema

Num formulário, crie uma textbox chamada "numero" e uma label ao lado da mesma com o texto escrito "Número:". Em seguida, crie uma label chamada "Resposta" vazia (sem texto) em baixo e um botão chamado "Verificar primo".
O seu trabalho será fazer com que ao clicar no botão "Verificar primo" apareça na label "Resposta" o texto "O número é primo", caso o número introduzido na textbox "numero" seja primo, ou "O número não é primo" caso o oposto se verifique.

Exemplo 1:
textbox "numero" = 3
label "Resposta" = 'O número é primo'

Exemplo 2:
textbox "numero" = 8
label "Resposta" = 'O número não é primo'

Resolução

Public Class Form1

    Private Sub VerificarPrimo_Click(sender As Object, e As EventArgs) Handles VerificarPrimo.Click
        ' Por defeito vamos assumir que o número é primo, dai pormos a flag = True
        ' (vai ser a variável flag que nos vai indicar se o número é ou não primo,
        ' pois caso ele não possa ser primo por algum motivo ao longo do nosso código,
        ' vamos colocar a variável = False).
        Dim flag As Boolean = True

        Dim numero As Integer = Convert.ToInt32(TXTNum.Text)

        ' Verificamos se o número é maior do que 1, pois os números apenas são aparece apartir dai, 
        ' o que nos permite desde já diminuir eliminar nº números que não seriam primos mas que o código iria
        ' ter de verificar à mesma caso este If não existisse
        If numero > 1 Then
            ' Não existe motivo para irmos para além de metade do valor do número introduzido, visto que, por
            ' exemplo, caso o número fosse = 4, a partir de 2 (que é a sua metade), nenhum numero de que 4 seria dividido 
            ' por, como por exemplo '4/3', daria resto 0, sem contar com o próprio 4 é claro, mas como o resto de
            ' qualquer número dividido por si proprio dá 0, isso não nos interessa.
            For i = 2 To numero / 2
                ' Fazer o Mod para ver se o resto é ou não 0...
                If numero Mod i = 0 Then
                    ' E finalmente, se o Mod (resto) for alguma vez = 0, isso significa que o nosso número
                    ' não é primo, e por isso colocamos a variável = False
                    flag = False
                End If
            Next
        Else
            flag = False
        End If

        ' Visto a variável flag ser boleana, ela por sí só já é verdadeiro (True) ou falso (False),
        ' logo não é necessário fazer algo como "If flag = True Then (...)", pois seria apenas verificar se 
        ' true = true ou false = true, o que é uma redundância.
        If flag Then
            Resposta.Text = "O número é primo"
        Else
            Resposta.Text = "O número não é primo"
        End If
    End Sub

End Class

Formulário