👤

Fie o matrice de n linii şi m coloane ce conţine numere întregi. Să se realizeze un program în care, folosind subprograme, se vor determina şi se vor scrie în fişierul cmmdc.out, cel mai mare divizor comun al elementelor de pe fiecare coloană.

Răspuns :

#include <iostream>
#include <fstream>
using namespace std;
ofstream f("cmmdc.out");
const int DMax=100;
int n,m,a[DMax][DMax];

int cmmdc(int a,int b)
{
    int r;
    r=a%b;
    while(r!=0)
    {
        a=b;
        b=r;
        r=a%b;
    }
    return b;
}

int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;++i)
        for(int j=1;j<=m;++j)
            cin>>a[i][j];
    int CMMDC;
    for(int j=1;j<=m;++j)
    {
        CMMDC=cmmdc(a[1][j],a[2][j]);
        for(int i=3;i<=n;++i)
            CMMDC=cmmdc(CMMDC,a[i][j]);
        f<<CMMDC<<' ';
    }
    return 0;
}