Escrever um algoritmo 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 12 calcular e escrever o fatorial de m. Se m for ímpar e maior ou igual a 12 calcular e escrever a soma dos inteiros de 1 até numero lido.
int soma(int fim);
int divisores(int valor);
int fatorial(int num);
int main()
{
int m;
do {
printf("Digite um numero M: ou 0 para encerrar");
scanf("%d", &m);
if (m % 2 == 0) {//se m for par
printf("O numero [%d] possui [%d] divisores\n", m, divisores(m));
}
else if (m < 12) {
printf("O fatorial de [%d]! e [%d] \n", m, fatorial(m));
}
else {
printf("A Soma dos inteiros de 1 ate [%d] e [%d] \n", m, soma(m));
}
} while (m > 0);
}
int soma(int fim) {
int total = 0;
for (int i = 1; i<= fim; i++) {
total += i;
}
return total;
}
int divisores(int valor) {
int cont = 0;
for (int i = 1; i <= valor; i++) {
if (valor%i == 0)
cont++;
}
return cont;
}
int fatorial(int num) {
int i=1,fatorial = 1;
do {
fatorial *= i;
i++;
} while (i <= num);
return fatorial;
}
Parceiro fiz usando funçoes, se você ainda não usa funções é so adaptar o codigo da função dentro do if, acredito que não vai ser problema, mas ta funcionando. Espero que ajude.
ALGORITMO
Escrever um algoritmo 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 12 calcular e escrever o fatorial de m. Se m for ímpar e maior ou igual a
12 calcular e escrever a soma dos inteiros de 1 até numero lido.
Para responder essa questão utilizaremos alguns conceitos de programação em linguagem C.
Primeiro é necessário declarar as variáveis que serão utilizadas. Após isso, solicita-se um número (m) ao usuário. Feita a leitura desse número, é necessário pedir para verificar se m é par ou ímpar, e maior ou menor que 12. Feitas essas verificações, condição por condição separadamente, é necessário fazer as operações solicitadas no problema. Após isso apenas mostrar o valor obtido da operação na tela. Segue abaixo a estrutura do programa:
#include <stdio.h>
int main (){
int m, i, x=0;
printf("Insira um numero:\n");
scanf("%d", &m);
if (m%2==0){
for (i=0;i<m;i++){
x=x+1;
}
printf("Divisores: %d", x);
}
if ((m%2=!0)&&(m<12){
for(i=0;i<m;i++){
x=x*m;
}
printf("Fatorial: %d", x);
}
else if ((m%2=!0)&&(m>12)){
for(i=0;i<m;i++){
x=x+m;
}
printf("Soma: %d", x);
}
return 0;
}
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar