Se citesc pe rând n numere naturale
a). Câte din numere citite au cel puțin trei cifre și sunt prime
b). S-a citit vreo valoare cu cifrele în ordine strict crescătoare?
c). Calculați și afișați media aritmetică a valorilor din cele citite, cu proprietatea ca au numar impar de divizori
In C++
Răspunsuri la întrebare
Răspuns:
a). Se pot parcurge numerele citite si se poate verifica daca au cel putin trei cifre si sunt prime. Pentru a determina daca un numar este prim se poate folosi algoritmul cunoscut sub numele de "Cercetare si Eliminare".
b). Se poate parcurge vectorul cu numere si se poate verifica daca cifrele sunt in ordine strict crescatoare.
c). Se poate parcurge vectorul si se poate calcula media aritmetica a valorilor care au numar impar de divizori. Pentru a determina numarul de divizori se poate folosi algoritmul cunoscut sub numele de "Cercetare si Eliminare".
Explicație:
a)
int nrCifre = 0;
int numerePrime = 0;
while (nr > 0)
{
if (nr > 99 && estePrim(nr))
numerePrime++;
nrCifre++;
nr /= 10;
}
b)
bool ok = true;
while (nr > 0)
{
int cifra = nr % 10;
if (cifra >= cifraPrecedenta)
{
ok = false;
break;
}
cifraPrecedenta = cifra;
nr /= 10;
}
c)
int suma = 0;
int nrDivizori = 0;
for (int i = 0; i < n; i++)
{
if (numarDivizori(v[i]) % 2 == 1)
{
suma += v[i];
nrDivizori++;
}
}
float medie = (float)suma / nrDivizori;
cout << medie;