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.
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
Tire dúvidas com IA
Resposta na hora da Minerva IA
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
Prefere professores para aulas particulares ou resolução de atividades?
Aulas particulares
Encontre um professor para combinar e agendar aulas particulares Buscar professor
Tarefas
Envie sua atividade, anexe os arquivos e receba ofertas dos professores Enviar tarefa