Escrever um algoritmo EM LINGUAGEM C que lê um número não determinado de valores para m, todos
inteiros e positivos, um de cada vez. Se m for par, verificar quantos divisores possui e
escrever esta informação. Se m for ímpar e menor do que 10 calcular e escrever o fatorial
de m. Se m for ímpar e maior ou igual a 10 calcular e escrever a soma dos inteiros de 1
até m.
Soluções para a tarefa
#include <stdio.h>
int div_num (int x);
int fat (int y);
int sum (int z);
int main() {
int i, j, k, s, m;
i = j = k = s = 0;
do {
printf("N[%d]: ",i+1); scanf("%d",&m);
while (m < 0) {
printf("N[%d]: ",i+1); scanf("%d",&m);
}
i++;
if (m % 2 == 0) {
j = div_num(m);
printf("%d possui %d divisores\n", m, j);
}
if (m % 2 != 0 && m < 10) {
k = fat (m);
printf("Fatorial de %d: %d\n", m, k);
}
if (m % 2 != 0 && m >= 10 ) {
s = sum (m);
printf("Soma de 1 a %d: %d\n", m, s);
}
} while (m != 0);
return 0;
}
int div_num(int x){
int q, r;
r = 0;
for (q=1;q<=x;q++) {if (x % q == 0) r++;}
return r;
}
int fat (int y){
int t, u = 1;
for (t = 1; t <= y; t++) u *= t;
return u;
}
int sum (int z){
int l, h = 0;
for (l = 0; l <= z; l++) h += l;
return h;
}
O algoritmo escrito na linguagem de programação C que resolve o problema dos pares e ímpares acima é:
#include <stdio.h>
int main() {
int m, i, contador, fatorial, soma;
while (1) {
printf("Insira um valor para m: ");
scanf("%d", &m);
if (m <= 0) {
break;
}
if (m % 2 == 0) {
contador = 0;
for (i = 1; i <= m; i++) {
if (m % i == 0) {
contador++;
}
}
printf("m possui %d divisores.\n", contador);
} else if (m < 10) {
fatorial = 1;
for (i = 1; i <= m; i++) {
fatorial *= i;
}
printf("O fatorial de m é %d.\n", fatorial);
} else {
soma = 0;
for (i = 1; i <= m; i++) {
soma += i;
}
printf("A soma dos inteiros de 1 até m é %d.\n", soma);
}
}
return 0;
}
Como esse algoritmo em C resolve o problema dos pares e ímpares acima?
Este algoritmo lê um número não determinado de valores para m, todos inteiros e positivos, um de cada vez. Utiliza-se um loop while para continuar lendo valores enquanto m for maior que zero. Dentro do loop, verifica-se se o valor lido é par ou ímpar.
Se for par, verifica-se quantos divisores possui e escreve essa informação. Se for ímpar e menor do que 10, calcula-se o fatorial de m e escreve esse valor. Se for ímpar e maior ou igual a 10, calcula-se a soma dos inteiros de 1 até m e escreve esse valor.
Saiba mais sobre programação aqui: https://brainly.com.br/tarefa/20790680
#SPJ2