Informatică, întrebare adresată de Utilizator anonim, 9 ani în urmă

Împaratul Persiei, Seram dă de ştire în toată împăraţ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 incă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ţă

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 incă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 impăratului.
Restricţii

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

vistiernic.in vistiernic.out Explicaţii
4
8 225 64 15
3
Averea împăratului este egală cu numărul dat de produsul 8*225*64*15. Acest număr se termină în 3 zerouri.
va rog repede

Răspunsuri la întrebare

Răspuns de express
1
#include <fstream>
using namespace std;
int d2,d5,n,i,nr;
int main()
{
    ifstream f("vistiernic.in");
    ofstream g("vistiernic.out");
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>nr;
        while(nr%2==0)
        {
            d2++;
            nr=nr/2;
        }
        while(nr%5==0)
        {
            d5++;
            nr=nr/5;
        }
    }
    if(d2<=d5) g<<d2;
          else g<<d5;
    f.close();
    g.close();
    return 0;
}

Alte întrebări interesante