Advertisement
Guest User

Untitled

a guest
Jun 28th, 2015
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 2.85 KB | None | 0 0
  1. Module Module1
  2.  
  3.     Sub Main()
  4.  
  5.         'Exibi uma mensagem na tela
  6.         Console.Write("Defina um número:")
  7.  
  8.         'Recebe o número digitado
  9.         Dim NumeroDigitado As Integer = Console.ReadLine
  10.  
  11.         'Cria uma array
  12.         Dim ArrayNumerosPrimos As New ArrayList
  13.  
  14.         'Inicia um for de 1 até o numero digitado
  15.         For i = 1 To NumeroDigitado
  16.  
  17.             'Chama a função que deteca se o número é primo
  18.             Dim NumeroPrimo As Boolean = DetectaNumerosPrimos(i)
  19.  
  20.             'Condição para saber se o número é primo
  21.             If NumeroPrimo = True Then
  22.  
  23.                 'Adiciona a array se o número for primo
  24.                 ArrayNumerosPrimos.Add(i)
  25.             End If
  26.  
  27.         Next
  28.  
  29.         'Chama a função que detecta qual é a soma que compõe o número digitado
  30.         Dim SomaNumerosPrimos As String = DetectarSomaNumerosPrimos(NumeroDigitado, ArrayNumerosPrimos)
  31.  
  32.         'Exibi o resultado
  33.         Console.WriteLine(SomaNumerosPrimos)
  34.  
  35.         'Pede para precionar tecla para terminar o programa
  36.         Console.ReadKey()
  37.  
  38.     End Sub
  39.  
  40.     'Função que pede o número a ser testado como parâmetro
  41.     Function DetectaNumerosPrimos(ByVal _NumeroPrimo As Integer) As Boolean
  42.  
  43.         'Inicia uma variável que armazenara o número de divisões que o número consegue fazer
  44.         Dim Quantidade_Divisoes As Integer = 0
  45.  
  46.         'For que vai de 1 até o Número do parâmetro
  47.         For a = 1 To _NumeroPrimo
  48.  
  49.             'Condição para saber se a divisão tem resto = 0
  50.             If ((_NumeroPrimo Mod a) = 0) Then
  51.  
  52.                 'Incrementa a variável que conto a quantidade de divisões possíveis
  53.                 Quantidade_Divisoes += 1
  54.             End If
  55.  
  56.         Next
  57.  
  58.         'Condição para saber se as divisões são igual a 2
  59.         If Quantidade_Divisoes = 2 Then
  60.  
  61.             'Retorna positivo ao teste
  62.             Return True
  63.         End If
  64.  
  65.         Return Nothing
  66.     End Function
  67.  
  68.     'Função que pede o número digitado e uma array de números primos como parâmetros
  69.     Function DetectarSomaNumerosPrimos(ByVal _NumeroDigitado As Integer, ByVal _ArrayNumerosPrimos As ArrayList) As String
  70.  
  71.         'Cria um loop de todos os números primos da array
  72.         For Each PrimoAtual In _ArrayNumerosPrimos
  73.  
  74.             'Cria um outro loop dentro de um existente
  75.             For Each _PrimoAtual In _ArrayNumerosPrimos
  76.  
  77.                 'Compara se a soma dos 2 números é igual ao número digitado
  78.                 If (PrimoAtual + _PrimoAtual) = _NumeroDigitado Then
  79.  
  80.                     'Retorna a soma correta
  81.                     Return (PrimoAtual & " + " & _PrimoAtual)
  82.  
  83.                     'Finaliza o loop
  84.                     Exit For
  85.                 End If
  86.  
  87.             Next
  88.  
  89.         Next
  90.  
  91.         Return Nothing
  92.     End Function
  93.  
  94. End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement