Se citește de la tastatură un tablou unidimensional a cu n(n <50) elemente numere naturale de
cel mult 9 cifre. Să se realizeze un program care determină:
a) Cifra maximă a fiecărui element.
b) Cel mai mare divizor comun al elementelor tabloului.
În cadrul programului, se vor defini două subprograme:
-funcția cifra, care returnează cifra maximă a valorii transmise prin intermediul unui
parametru valoare.
-funcția cmmdc, care returnează cel mai mare divizor comun a două valori transmise prin
intermediul unor parametri valoare.
Exemplu: pentru n=7 și a = (37,40,13,60,31,11,140) se va afișa
7 4 3 6 3 1 4
1

Răspuns :

#include <iostream>

using namespace std;

int cifra(int x) {

int max=-1;

do {

if (x%10>max) max=x%10;

x/10;

} while (x==0);

return max;

}

int cmmdc(int m, int n) {

if (m==0) return n;

if (n==0) return m;

while(m!=0) {

int r=n%m;

n=m;

m=r;

}

return n;

}

int main() {

int n, v[51], x;

cin>>n;

cin>>v[1]:

for (int i=2; i<=n; i++) {

cin>>v[i]; x=cmmdc(v[1], v[i]); v[1]=v[i];

}

for (int i=1; i<=n; i++) cout<<cifra(v[i])<<' ';

cout<<endl<<x;

return 0;

}