Gente, preciso de ajuda com esse código

Preciso que no meu código tenha esses itens:

  • chama uma função inteira para ler um número inteiro positivo N;
  • 2: chama uma função booleana para saber se o N é par ou ímpar;
  • 3: chama um void para calcular e exibir o FATORIAL de N ;
  • 4: Chamar uma função booleana para analisar se N é primo ou não
  • 5: chama um void para exibir a soma dos números primos de 1 até N…

Mas por enquanto, só soube fazer isso:

#include <cstdlib>
#include <iomanip>
#include <string.h>
#include <windows.h>

using namespace std;
int parametro1, parametro2;//Variáveis globais

// Subrotinas
void LerParametros();
float CalcularFatorial(float num);
void MenuControle(double fatorial);

int main() {
  double fatorial = 0;
  setlocale(LC_ALL, "Portuguese");
  system ("color f1");
  cout << "\n*********** CALCULADORA DE FATORIAL ***********";
  cout << "\nDigite um número para o cálculo de fatorial: ";
  cin >> fatorial;
  MenuControle(fatorial);
  return 0;
}

void MenuControle(double fatorial) {

  int tecla;
  double resultado;
  do {
    system("cls");
    cin.ignore();
    cout << "--------------------------------------------------------------";
    cout << "\n Digite (1) para: Calcular o Intervalo de número impares..."; 
    cout << "\n Digite (2) para: Calcular o Fatorial...";
    cout << "\n--------------------------------------------------------------";
    cout << "\n\n Digite a opção desejada: ";
    cin >> tecla;

    switch (tecla) {
    case 1:
      LerParametros();
      break;
    case 2:
      resultado = CalcularFatorial(fatorial);
      cout << "O fatorial de " << fatorial << " é igual a " << resultado  << "." << endl;
      Sleep(5000);
      break;
    case 0:
      exit(0);
      break;
    }
  } while (tecla != 0);

}

float CalcularFatorial(float num) {
  float resultado = 1;
  for (resultado = 1; num > 1; num = num - 1) {
    resultado = resultado * num;
  }
  return resultado;
}

void LerParametros() {
  int indice{};
  int somatorio{};
  system("cls");
  cin.ignore();
  cout << "\n--------------------------------------------";
  cout << "\nDigite o número do inicio do intervalo: ";
  cin >> parametro1;
  cout << "\nDigite o número do final do intervalo: ";
  cin >> parametro2;
  cout << "\nOs números ímpares entre " << parametro1 << " e " << parametro2 << " são:" << endl;
  for (indice = parametro1; indice <= parametro2; indice++) {
    if (indice % 2 == 1)
    {
      cout << indice << " ";
      somatorio = somatorio + indice;
    }
  }
  cout << "\n\nO somatório dos números ímpares é igual a: " << somatorio << "." << endl;
  Sleep(5000);
}

Seja bem vinda ao fórum. Você está indo bem, já escreveu boa parte do código. Qual sua dúvida?

Olá @Fefo80, obrigada.
Preciso de ajuda com os itens 2 e 4…

  • 2: chama uma função booleana para saber se o N é par ou ímpar;
    *4: Chamar uma função booleana para analisar se N é primo ou não;

A verificação se N é ímpar ou par é fácil.

Faz uma função que teste se a divisão do número N tem resto, e divide ele por 2. Se tiver resto, é ímpar, se não tiver, é par. Acredito que você não vai ter dificuldades pra fazer isso, face ao que já fez.

Para verificar se N é primo, basta verificar seus divisores, de 1 até N. Mas não precisamos testar até N: passou da metade, não vai ter mais nenhum divisor possível.

Testa isso, para os números primos:

int aux, num=N, div=0;

for(aux=2 ; aux<=num/2 ; aux++)
    if(num%aux==0)
        div++;

if(div==0)
    cout<<"É primo"<<endl;
else
    cout<<"Não é primo"<<endl;
return 0;