Files
exercitii/tema_1/19_final.cpp
T
2025-12-09 16:33:21 +02:00

58 lines
1.6 KiB
C++

#include <iostream>
void divDoiCinci(int nrEl){
int nrDivDoi=0, nrDivCinci=0, nrZero=0;
bool zeroPrezent = false, nrNegativ=false;
for (int i = 0; i<nrEl; i++) {
int n, d=2, p;
std::cout << "n" << i+1 << "=";
std::cin >> n;
if(n==0){
zeroPrezent=true;
i=nrEl;
//Sa imi iasa din loop daca orcare dintre factori este 0
//produsul atunci e 0 si am un if() mai jos pentru cazul
//asta. Desi in enuntul problemei se cerea n natural, deci
//as fi putut sa il pun in if()ul care exclude nr. intregi.
}
else if(n<0){
nrNegativ=true;
break;
}
else{
while(n!=1)
{
p = 0;
while(n%d==0)
{
n = n/d;
p++;
}
if(p>0){
if(d==5){nrDivCinci+=p;}
if(d==2){nrDivDoi+=p;}
}
d++;
}
}
}
if(nrNegativ==true){
std::cout<<"ultimul factor nu este numar natural. \n";
}
else if(zeroPrezent==false){
if(nrDivDoi>nrDivCinci){nrZero=nrDivCinci;}
else {nrZero=nrDivDoi;}
std::cout<<"produsul numerelor se sfarseste cu "<< nrZero;
std::cout << " zero(uri). \n";
}
else {
std::cout << "produsul numerelor este 0, deci se termină într-un 0. \n";
}
}
int main(){
int nrEl;
std::cout << "nr de factori = ";
std::cin >> nrEl;
divDoiCinci(nrEl);
return 0;
}