Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Module Module1
- Sub Main()
- 'Exibi uma mensagem na tela
- Console.Write("Defina um número:")
- 'Recebe o número digitado
- Dim NumeroDigitado As Integer = Console.ReadLine
- 'Cria uma array
- Dim ArrayNumerosPrimos As New ArrayList
- 'Inicia um for de 1 até o numero digitado
- For i = 1 To NumeroDigitado
- 'Chama a função que deteca se o número é primo
- Dim NumeroPrimo As Boolean = DetectaNumerosPrimos(i)
- 'Condição para saber se o número é primo
- If NumeroPrimo = True Then
- 'Adiciona a array se o número for primo
- ArrayNumerosPrimos.Add(i)
- End If
- Next
- 'Chama a função que detecta qual é a soma que compõe o número digitado
- Dim SomaNumerosPrimos As String = DetectarSomaNumerosPrimos(NumeroDigitado, ArrayNumerosPrimos)
- 'Exibi o resultado
- Console.WriteLine(SomaNumerosPrimos)
- 'Pede para precionar tecla para terminar o programa
- Console.ReadKey()
- End Sub
- 'Função que pede o número a ser testado como parâmetro
- Function DetectaNumerosPrimos(ByVal _NumeroPrimo As Integer) As Boolean
- 'Inicia uma variável que armazenara o número de divisões que o número consegue fazer
- Dim Quantidade_Divisoes As Integer = 0
- 'For que vai de 1 até o Número do parâmetro
- For a = 1 To _NumeroPrimo
- 'Condição para saber se a divisão tem resto = 0
- If ((_NumeroPrimo Mod a) = 0) Then
- 'Incrementa a variável que conto a quantidade de divisões possíveis
- Quantidade_Divisoes += 1
- End If
- Next
- 'Condição para saber se as divisões são igual a 2
- If Quantidade_Divisoes = 2 Then
- 'Retorna positivo ao teste
- Return True
- End If
- Return Nothing
- End Function
- 'Função que pede o número digitado e uma array de números primos como parâmetros
- Function DetectarSomaNumerosPrimos(ByVal _NumeroDigitado As Integer, ByVal _ArrayNumerosPrimos As ArrayList) As String
- 'Cria um loop de todos os números primos da array
- For Each PrimoAtual In _ArrayNumerosPrimos
- 'Cria um outro loop dentro de um existente
- For Each _PrimoAtual In _ArrayNumerosPrimos
- 'Compara se a soma dos 2 números é igual ao número digitado
- If (PrimoAtual + _PrimoAtual) = _NumeroDigitado Then
- 'Retorna a soma correta
- Return (PrimoAtual & " + " & _PrimoAtual)
- 'Finaliza o loop
- Exit For
- End If
- Next
- Next
- Return Nothing
- End Function
- End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement