Pagini recente » Cod sursa (job #284505) | Monitorul de evaluare | Cod sursa (job #2600507) | Cod sursa (job #1599432) | Cod sursa (job #206522)
Cod sursa(job #206522)
#include <fstream.h>
int x[1001],a[1001],n,nr,i,j,aux,b,i1,j1,c,k;
void poz(int li, int ls)
{i1=0;
j1=-1;
i=li;
j=ls;
while(i<j)
{if(x[i]<x[j])
{c=x[j];
x[j]=x[i];
x[i]=c;
c=i1;
i1=-j1;
j1=-c;
}
i+=i1;
j+=j1;
}
k=i;
}
void quick(int li, int ls)
{if(li<ls)
{poz(li,ls);
quick(li,k-1);
quick(k+1,ls);
}
}
void minim()
{quick(1,n);
nr++;
a[nr]=x[n];
x[n]=0;
n--;
}
void main()
{
ifstream fin("economie.in");
fin>>n;
for(i=1;i<=n;i++)
fin>>x[i];
fin.close();
minim();
for(i=1;i<=n;i++)
{b=x[i]; aux=-1;
for(j=1;j<=nr;j++)
{while(b>0 && aux!=0)
{aux=b%a[j];
b/=a[j];
}
b=aux;
}
if(aux!=0)
minim();
}
ofstream fout("economie.out");
fout<<nr<<endl;
for(i=1;i<=nr;i++)
fout<<a[i]<<" ";
fout<<'\n';
}