Foto de Felipe G.
Felipe há 2 anos
Enviada pelo
Site

Duvida em linguagem c

Tenhi duvida nessa questao:

calcule a soma de todos os numeros primos existentes entre 1 e um numero informado pelo usuario.

2 respostas
Professor Jarson A.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos
Contatar Jarson

Olá,

Seguinte não sou expecialista em C mas sei um pouco de C++, além de trazer meu programa vou ditar minha lógica, blz? vamo lá...

Eu começei declarando as variáveis necessarias, n(numero que o cara determinou), s=0 pra ser a soma e d=0 pra ser o numero de divisores do numero.

depois eu fiz um for pra ler todos os valores de i=2 (pois o 1 não é primo) até i=n e dentro do loop você vai fazer um for pra descobrir se esse numero é primo (dois divisores ou seja d=2) e se ele for primo a variavel s recebe s+i e lembre-se de zerar o "d" para quando passar para um outro 

a ideia é essa basicamente, o código em c++:

#include <iostream>
using namespace std;
int main(){
 int n,s=0,d=0;
 cin>>n;
 for(int i=2;i<=n;i++){
  for(int p=1;p<=i;p++){
   if(i%p==0){
    d++;
   }
  }
  if(d==2){
   s=s+i;
   d=0;
  }
  else{
   d=0;
  }
 }
 cout<<s;
 
}

Obs.: cin -> leia, cout-> escreva, % -> resto na divisão por, = -> recebe, ==-> igual. não sei se tem todos esses no C

ah e eu não consegui entender muito bem se ele inclui o "n" na soma (no caso dele ser primo) nessa solução eu considerei assim no meu primeiro for quando coloquei i<=n mas caso não inclua o n substitua i<=n por i<n :)

Boa noite e bons estudos, espero ter ajudado!

 

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Envie uma dúvida grátis
Resposta na hora da Minerva IA e de professores particulares
Enviar dúvida
Professor Walisson F.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos
Contatar Walisson

//calcule a soma de todos os numeros primos existentes entre 1 e um numero informado pelo usuario.

#include <stdio.h>
#include <stdlib.h>

int main(){
    int numero, i, soma = 0;
    int resto = numero;
    printf("\ndigite o numero maximo para listar a soma dos número primos:");
    scanf("%d", &numero);
    for(i=0; i<=numero; i++){
        if(i==2){
            soma = soma + i;
            printf("\n(%d)a soma do numero primo %d dentro do if 1 e: %d", i, i, soma);
        } else if(i>2 && i%2!=0){
            soma = soma + i;
            printf("\n(%d)a soma do numero primo %d dentro do if 2 e: %d",i, i, soma);
        } else {
            printf("\n(%d) %d nao e primo entao soma se mantem: %d",i, i, soma);
        }
    }
    printf("\n\n-----------Resultado Final -----------");
    printf("\na soma dos numeros primos de 0 ate %d e: %d", numero , soma);
    return 0;
}

 

Expliquei o funcionamento do código dentro do próprio código, o que fica mais fácil de entender e testar o que ocorre dentro do loop for.

Basta fazer a iteração dentro do for e verificar se o numero é primo ou não.

Precisa de um loop do tipo for porque você sabe a quantidade de loops que será informado pelo usuário.

Você precisa de dois IFs para veficiar os numeros primos:

O primeiro IF para verificar se o numero é 2 porque o mesmo é o único par dentro dos némeros primos.

O segundo IF para verificar se o número é maior que dois e não é divisivel por 2 ou seja o mesmo só é divisível por ele mesmo ou por 1.

O else será apenas para apresentar que o valor da variável soma não foi alterado.

Sendo primo deve ser salvo dentro de uma variável acumuladora de valores, chamada soma. Você também pode somar da forma abreviada de receber o valor somando: soma += i;

Espero que te ajude.

 

Caso tenha mais alguma dúvida estou a disposição. Entre em contato comigo no PROFES e agende uma aula experimental. https://profes.com.br/walisson.ti

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Precisa de outra solução? Conheça
Aulas particulares Encontre um professor para combinar e agendar aulas particulares Buscar professor