Cod sursa(job #1765030)

Utilizator caesar2001Stoica Alexandru caesar2001 Data 26 septembrie 2016 10:54:45
Problema Divk Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.49 kb
#include <stdio.h>
#include <stdlib.h>
FILE *in,*out;
int a[10000];
int main()
{
    in = fopen("3numere.in","r");
    out = fopen("3numere.out","w");
    long long x,y,z,i,c,cx,cy,cz,j,r,cmmdc = 0,cmmdcf,nrf = 0,d = 2,n,rez,p = 0,dy,dz,max = -1;
    fscanf(in,"%lld %lld %lld",&x,&y,&z);
    cx = x;
    cy = y;
    cz = z;
    while(cy != 0)
    {
        cmmdc = r;
        r = cx % cy;
        cx = cy;
        cy = r;
    }
    while(cz != 0)
    {
        cmmdcf = r;
        r = cmmdc % cz;
        cmmdc = cz;
        cz = r;
    }
    fprintf(out,"%lld\n",cmmdcf);
    rez = 1;
    while(x > 1)
    {
        p = 0;
        while(x%d == 0)
        {
            p ++;
            x = x/d;
            if(d > max)
            max = d;
        }
        if(p > 0)
        {
            a[d] = a[d] + p;
        }
        d ++;
    }
    d = 2;
    while(y > 1)
    {
        p = 0;
        while(y%d == 0)
        {
            p ++;
            y = y/d;
            if(d > max)
            max = d;
        }
        if(p > 0)
            a[d] = a[d] + p;
        d ++;
    }
    d = 2;
    while(z > 1)
    {
        p = 0;
        while(z%d == 0)
        {
            p ++;
            z = z/d;
            if(d > max)
            max = d;
        }
        if(p > 0)
            a[d] = a[d] + p;
        d ++;
        j = a[d];
    }
    for(i = 1;i <= max;i ++)
        rez = rez + a[i];
    fprintf(out,"%lld",rez);
    return 0;
}