👤
Alexiagiu18
a fost răspuns

Se citesc n numere de la tastatură:
a) Afișați produsul divizorilor fiecărui număr;
b) Afișați numărul divizori pari fiecare număr (cați divizori pari are fiecare x)
c) Numarati care are exact 3 divizori.
d) Afișați numerele care are exact 3 divizori.
e)Calculați suma numerelor care au ultima cifra 5.
f) Afișați numerele care se divid prin 2 și 8.
g) Afișați pentru fiecare numărul divizori impari.


Răspuns :

Răspuns:

#include <iostream>

// Afișați produsul divizorilor fiecărui număr

int subpunctulA(const int& nr)

{

int prodDiv{ 1 };

for (int i{ 1 }; i <= nr; i++)

{

 if (nr % i == 0)

 {

  prodDiv *= i;

 }

}

return prodDiv;

}

// Afișați cați divizori pari are fiecare număr

int subpunctulB(const int& nr)

{

int nrDiv{};

for (int i{ 1 }; i <= nr; i++)

{

 if (nr % i == 0 && i % 2 == 0)

 {

  nrDiv++;

 }

}

return nrDiv;

}

// Numarati care are exact 3 divizori.

int subpunctulC(const int& nr)

{

int nrDiv{};

for (int i{ 1 }; i <= nr; ++i)

{

 if (nr % i == 0)

 {

  nrDiv++;

 }

}

return nrDiv;

}

// Calculați suma numerelor care au ultima cifra 5.

int subpunctulE(int* vecNr, const std::size_t& dimVector)

{

int sumaNr{};

for (std::size_t i{}; i < dimVector; ++i)

{

 if (vecNr[i] % 10 == 5)

 {

  sumaNr += vecNr[i];

 }

}

return sumaNr;

}

int subpunctulG(const int& nr)

{

int nrDiv{};

for (int i{ 1 }; i <= nr; i++)

{

 if (nr % i == 0 && i % 2 != 0)

 {

  nrDiv++;

 }

}

return nrDiv;

}

int main() {

int vecNr[]{

 85, 96, 75, 66, 37, 8, 78, 58, 43, 98, 61, 26, 20, 34, 31, 82, 70, 16, 49, 2, 53, 39, 5, 44,

 25, 21, 32, 29, 67, 35, 17, 27, 74, 90, 12, 77, 68, 33, 60, 87, 65, 23, 76, 28, 80, 55, 36,

 62, 24, 69, 52, 47, 46, 1, 59, 99, 91, 41, 71, 14, 42, 15, 4, 95, 94, 57, 89, 51, 13, 48, 30,

 86, 84, 22, 56, 73, 88,63, 81, 64, 40, 11, 93, 45, 18, 50, 9, 10, 83, 19, 3, 92, 6, 7, 97,

 72, 38, 100, 79, 54

}, sumaNumere{};

for (const int& nr : vecNr)

{

 int nrDivPari{ subpunctulB(nr) }, nrDivImp{ subpunctulG(nr) }, nrDiv{ subpunctulC(nr) };

 std::cout << "Produsul divizorilor numarului " << nr << " este " << subpunctulA(nr) << std::endl;

 std::cout << nr << " are " << nrDivPari << " div. pari!" << std::endl;

 // Numarati cate numere au exact 3 divizori si afișați numerele care au exact 3 divizori.

 if (nrDiv == 3)

 {

  std::cout << "Numarul " << nr << " are fix 3 divizori!" << std::endl;

 }

 // Afișați numerele care se divid prin 2 și 8.

 if (nr % 2 == 0 && nr % 8 == 0)

 {

  std::cout << nr << " se divide la 2 si 8 !" << std::endl;

 }

 // Afișați pentru fiecare numărul divizori impari.

 std::cout << nr << " are " << nrDivImp << " div. impari!" << std::endl;

 std::cout << "---------------------------------------------------------" << std::endl;

}

std::cout << "\nSuma numerelor cu ultima cifra 5 este " << subpunctulE(vecNr, std::size(vecNr)) << std::endl;
       return 0;

}