Está en la página 1de 2

ATESTAT C/C++ PROBLEMA 8

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("atestat.in"); ofstream g("atestat.out");

int mxv(int n, int v[])

int mx = 0;

for(int i=0; i < n; i++)

if(v[i] > mx) mx = v[i];

return mx;

void frecventa (int n, int v[])

int mx = 0, i, x;

int fr[10] = {0};

for (i=0; i < n; i++)

x = v[i];

while( x != 0 )

{++fr[x%10]; x/=10;}

for (i=0; i < 9; i++)

if (fr[i] > mx) mx = i;


cout << mx - 1;

int ndiv (int x)

int k = 0, n = x;

for (int d=2; d <= n/2; d++)

if (n % d == 0) {k++; n=n/d; d = 1;}

return k;

int main()

int n; f >> n;

int v[n];

for (int i=0; i < n; i++) f >> v[i];

// subpunctul a).

frecventa (n, v); cout << endl;

// subpunctul b).

int mx = ndiv( v[0] ), x = v[0];

for (int i=1; i < n; i++)

if (ndiv (v[i]) > mx) {mx = ndiv (v[i]); x = v[i];}

cout << x << endl;

// subpunctul c).

for (int i=0; i < n; i++)

if (ndiv (v[i]) == 0) g << v[i] <<" ";

return 0;

También podría gustarte