Ir ao conteúdo

C# Soma de Primos entre A & B


Ir à solução Resolvido por Gabferreira,

Posts recomendados

Postado

Gente estou precisando de ajuda eu conseguir fazer o algoritmo, o problema que quando eu digito um número que não seja primo por exemplo Digitei  4 na Variável A 

Digitei 10 na Variável B ele faz a soma junto com o 4 + 5 + 7 + 9 sendo que ele não é número primo mais quero que ele some somente os números primos alguém sabe o que tem de errado no meu algoritmo ?

 

 

            for (num = a; num <= b; num++)
            {
                div = 0;
                for (i = 2; i <= num; i++)
                {

                    if ((num % i == 0))
                        div++;
                }
                if (div <= 2)
                {
                    soma += num;
                    Console.WriteLine("[" + num + "]");
                }
            }

        }

 

image.png

  • Solução
Postado

Neste trecho do seu código 

 if (div <= 2) //Aqui está o problema
 {
    soma += num;
    Console.WriteLine("[" + num + "]");
 }

A lógica que está nele, é a de que "caso a quantidade de números que sejam divisíveis pelo número selecionado seja menor ou igual a 2, este número então é um número primo", porém o número primo só é divisível por 1 e por ele mesmo, como o 1 está sendo desconsiderado no exercício, ele deve ser divisível somente por ele mesmo, então no seu caso, o número é primo, se a variável div for menor do que 2, e não menor ou igual a 2.

 

Espero ter ajudado, um abraço!!!

  • Obrigado 1
Postado
5 horas atrás, Gabferreira disse:

Neste trecho do seu código 


 if (div <= 2) //Aqui está o problema
 {
    soma += num;
    Console.WriteLine("[" + num + "]");
 }

A lógica que está nele, é a de que "caso a quantidade de números que sejam divisíveis pelo número selecionado seja menor ou igual a 2, este número então é um número primo", porém o número primo só é divisível por 1 e por ele mesmo, como o 1 está sendo desconsiderado no exercício, ele deve ser divisível somente por ele mesmo, então no seu caso, o número é primo, se a variável div for menor do que 2, e não menor ou igual a 2.

 

Espero ter ajudado, um abraço!!!

Opa deu certo GabFerreira obrigado :D

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!