Pagini recente » Cod sursa (job #495717) | Cod sursa (job #800580) | Cod sursa (job #44273) | Cod sursa (job #440416) | Cod sursa (job #109884)
Cod sursa(job #109884)
#include<fstream.h>
long long n,a[1000],i,b[1000],x,j,k,t,v,gasit,c[1000],o;
void quik(long long p,long long q)
{
long long aux,i,j,t;
if(p<q)
{
i=p;
j=q;
t=1;
do
{
if(a[i]>a[j])
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
t=!t;
}
if(t)
j--;
else
i++;
}while(i!=j);
quik(p,i-1);
quik(i+1,q);
}
}
int main()
{
ifstream f("economie.in");
ofstream g("economie.out");
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
quik(1,n);
i=n;
while(i>1)
{
gasit=1;
v=0;
j=1;
if(a[i]%a[1]==0)
{
b[k]=a[1];
k++;
gasit=0;
v=1;
}
else
{
j=2;
while(gasit==1)
{
if(a[i]%a[j]==0)
{
gasit=0;
v=1;
}
else
{
a[i]=a[i]/a[j];
for(int t=j-1;t>=1;t--)
{
if(a[i]%a[t]==0)
{
gasit=0;
v=1;
}
else
a[i]=a[i]/a[t];
}
}
j++;
if(j==n-1)
gasit=0;
}
}
if(gasit==0&&v==1)
for(t=1;i<=j;i++)
{
b[k]=a[i];
k++;
}
i--;
}
for(i=0;i<k;i++)
{
gasit=0;
for(j=0;j<o;j++)
if(b[i]==c[j])
gasit=1;
if(gasit==0)
{
c[o]=b[i];
o++;
}
}
g<<o<<"\n";
for(i=0;i<o;i++)
g<<c[i]<<"\n";
return 0;
}