Rezolvare completă PbInfo #2097 Vistiernic

Împăratul Persiei, Seram dă de ştire în toată împărăția sa, că vrea să-şi aleagă vistiernic care să-i administreze averea. El precizează că visteria palatului are n încăperi numerotate cu numere naturale diferite de 0. Suma de bani pe care o are în aceste încăperi este egală cu produsul numerelor cu care sunt numerotate încăperile visteriei. De asemenea împăratul dă de ştire că va alege pe acel supus vistiernic, care ştie să calculeze în câte zerouri se termină numărul ce reprezintă averea sa.

Cerința

Scrieţi un program care determină numărul de zerouri în care se termină averea împăratului.

Date de intrare

De pe prima linie din fişierul de intrare vistiernic.in se citeşte un număr natural n, ce reprezintă numărul de încăperi ale visteriei.

De pe linia următoare se citesc n numere naturale separate prin spaţii reprezentând numerele înscrise pe uşile încăperilor visteriei.

Date de ieșire

Pe prima linie în fişierul vistiernic.out se va afişa un număr ce reprezintă numărul de zerouri în care se termină averea împăratului.

Restricții și precizări

1 ≤ n ≤ 1000
1 ≤ numărul de pe uşă ≤ 32767, pentru fiecare încăpere.


Exemplu

vistiernic.in

4
8 225 64 15

vistiernic.out

3

Explicație

Averea împăratului este egală cu numărul dat de produsul 8*225*64*15. Acest număr se termină în 3 zerouri.

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Vistiernic:

#include<fstream>
using namespace std;
ifstream fin("vistiernic.in");
ofstream fout("vistiernic.out");
int n, x, i, p2, p5, nz;
int main()
{
    fin >> n;
    for (i = 1; i <= n; i++) {
        fin >> x;
        while (x % 2 == 0) {
            p2++;
            x = x/2;
        }
        while (x % 5 == 0) {
           p5++;
           x = x/5;
        }
    }
    if (p2 <= p5)
        nz = p2;
    else
        nz = p5;
    fout << nz << '\n';
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2097 Vistiernic

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2097 Vistiernic de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!