O Sistersinspirit.ca ajuda você a encontrar respostas confiáveis para todas as suas perguntas com a ajuda de especialistas. Nossa plataforma de perguntas e respostas conecta você com especialistas prontos para fornecer informações precisas em diversas áreas do conhecimento. Obtenha respostas rápidas e confiáveis para suas perguntas de nossa dedicada comunidade de especialistas em nossa plataforma.

Faça um programa que receba dez números inteiros e mostre a quantidade de números primos dentre os números que foram digitados? Em linguagem c# ou linguagem csharp.

Sagot :

Resposta:

Podemos dividir o problema em alguns passos:

Criar uma variável para monitorar a quantidade de números primos ja vistos;

Para cada número recebido pelo programa, cheque se ele é primo;

Se sim, adicione um no contador;

Repita o processo para até que todos os números tenham sido checados (no nosso caso, 10 vezes).

Um possível pseudocódigo para este problema pode ser:

função primos(números):

 contador = 0

 para cada número em números:

   se éPrimo(número) == true:

     contador += 1

 retorne contador

É claro, isso implica na função éPrimo(n), um problema clássico na ciência da computação. Muitos são os métodos para a definição de um número como primo ou composto (compostos são aqueles números que não são primos, como 4, 6, 8, 9...). Embora não seja o mais performático, o método de tentativa e erro pode ser aplicado nesse caso, contanto que os números a serem testados não sejam muito grandes.

Uma sequência de de passos possível para a elaboração de uma função que receba um número e retorne true se for primo e false caso contrário, é a seguinte:

Se o número for igual a 2, retorne true;

Se o número for par, retorne false;

Divida cada número menor que a raiz quadrada do número a ser testado, e se o resultado for um número inteiro, significa que o número tem divisores, e portanto não é primo. Se for esse caso, retorne false;

Se após que todos os números tiverem sido testados nenhum conseguir dividir o número sendo testado, o número é primo, portanto retorne True.

Um possível pseudocódigo é o seguinte:

função éPrimo(n):

 se n == 2:

   retorne true

 se n % 2 == 0:

   retorne false

 para cada i menor que \sqrt{n}n :

   se n % i == 0:

     retorne false

 retorne true

Resposta:

using System;

class Program {

  static void Main(string[] args) {

      int primos = 0;

      int[] nums = new int[10];

   

      for(int c=0; c<10; c++){

          Console.Write("Informe um valor "+(c+1)+"/10: ");

          nums[c] = Int32.Parse(Console.ReadLine());

          if (is_primo(nums[c])){

              primos++;

          }

      }

       

      Console.Write("Foram digitados "+primos);

      Console.WriteLine(" números primos!");

       

  }

   

  static bool is_primo(int num){

      int divs = 0;

      for(int c=num; c>0; c--){

          if(num%c == 0){

              divs++;

          }

      }

       

      return divs == 2;

  }

}

Explicação: