1 se citește un număr natural n. Scrieți un algoritm care să afișeze câți divizori proprii pari și câți divizori impari are el.
2 se citește un număr natural n. Scrieți un algoritm care să calculeze produsul divizoriilor impari.
3 se citește un număr natural n. Scrieți un algoritm care să calculeze media aritmetică a divizoriilor pari.
Toate cele 3 exerciții să se rezolve în C++ te rog. E urgent, dau coroană.
Răspunsuri la întrebare
Răspuns:
Exercitiul 1 :
#include <iostream>
using namespace std;
int main()
{
int n, cntp = 0, cnti = 0;
cin >> n;
for (int d = 2; d < n; d++)
{
if (n % d == 0)
{
if (d % 2 == 0)
cntp++; //nr divizori pari
else
cnti++; // nr divizori impari
}
}
cout << cntp << ' ' << cnti;
return 0;
}
Exercitiul 2 :
#include <iostream>
using namespace std;
int main()
{
int n, p = 1;
cin >> n;
for (int d = 3; d < n; d += 2) //vf toti div impari, adk de la 3 pana la n, 1 este impropriu
{
if (n % d == 0)
p *= d;
}
cout << p;
return 0;
}
Exercitiul 3 :
#include <iostream>
using namespace std;
int main()
{
int n, cntdiv = 0;
double ma = 0;
cin >> n;
for (int d = 2; d < n; d += 2) //vf toti div pari, adk de la 2 pana la n
{
if (n % d == 0)
{
ma += d;
cntdiv++;
}
}
cout << ma / cntdiv;
return 0;
}
Explicație:
ex 1 : algoritm de divizori care vf daca divizorul este par sau impar si crestem contorul
ex 2 : algoritm de divizori impari si face produsul dintre ei
ex 3 : algoritm de divizori pari unde se face media aritmetica
PS : Nu ai specificat o limita de timp deci am facut algoritul cel mai simplu la ex 1.