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;
}