Buscar

Faça um programa que leia cinquenta números inteiros positivos (valide cada entrada) e mostre a soma dos números pares e a soma dos números primos

💡 2 Respostas

User badge image

Joao Andre MArtins Dias

char isPrimo(long p) {
    int i = 3;
    char flag = 1;

    //// Se 'p' é 2 ou 3 então é primo  
    if (p == 2 || p == 3)
        return flag;

    //// Se 'p' for 0, 1 ou par então não é primo  
    if (p == 0 || p == 1 || p % 2 == 0)
        flag= 0;

    long raiz = (long) sqrt((double) p);

    while (i <= raiz && flag) {
        if (p % i == 0)
            flag = 0;
        i += 2;
    }

    return flag;
}

char isPar(int n) {
    return (n % 2 == 0);
}

int main(int argc, char** argv) {
    int cont = 1, somaPar = 0, somaPrimo = 0, val;
    printf("\n");
    while (cont < 5) {
        printf("Nº[%2d] - Digite um valor:", cont);
        scanf("%d", &val);
        if (val >= 0) {
            somaPrimo += (isPrimo(val)) ? val : 0;
            somaPar += (isPar(val)) ? val : 0;
            cont++;

        } else {
            printf("\n Entrada inválida o valor deve ser positivo:", cont);
        }
        printf("\n");
    }
    printf("\n Soma dos Primos:[%d]", somaPrimo);
    printf("\n Soma dos Pares:[%d]", somaPar);

 

}

1
Dislike0
User badge image

RD Resoluções

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

int main()
{
    int i, j, num, somapar=0, somaprimo=0;

    for(i=0;i<50;i++){
        scanf("%d", &num);
        if(num>=0){
            if(num%2==0)
                somapar=somapar+num;
            if(num==2)
                somaprimo=somaprimo+2;
            if(num==3)
                somaprimo=somaprimo+3;
            for(j=2;j<=(num/2);j++){
                if(num%j == 0)
                    j=num;
                if(j==num/2)
                    somaprimo=somaprimo+num;
            }
        }
        else
            i--;
    }

    printf("\nSoma dos pares: %d\nSoma dos primos: %d\n", somapar, somaprimo);
    system("PAUSE");
    return 0;
}
0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta.

User badge image

Outros materiais