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);
}
#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; }
Para escrever sua resposta aqui, entre ou crie uma conta.
Lógica Técnica Programação e Programação da Produção
Compartilhar