Pagini recente » Cod sursa (job #105108) | Cod sursa (job #1080194) | Cod sursa (job #1316355) | Cod sursa (job #1270335) | Cod sursa (job #286394)
Cod sursa(job #286394)
# include <stdio.h>
int N,i,v[1001],C[1001],k;
void quick(int st, int dr)
{
int i=st,j=dr,p=v[(st+dr)/2],aux;
if (dr<=st) return;
while (i<=j){
while (v[i]<p) i++;
while (p<v[j]) j--;
if (i<=j) {
aux=v[i];v[i]=v[j]; v[j]=aux;
i++; j--;
}
}
if (st<j) quick(st,j);
if (i<dr) quick(i,dr);
}
int BS(int x)
{ int i,j,m,r;
i=1; j=x-1;
while (i<=j) {
m=i+(j-i)/2;
r=v[x]%v[m];
if (r==0) return 1;
else if (r>v[m]) i=m+1;
else j=m-1;
}
return 0;
}
int main(){
freopen("economie.in", "r", stdin);
freopen("economie.out", "w", stdout);
scanf("%d",&N);
for (i=1;i<=N;++i)
scanf("%d",&v[i]);
quick(1,N);
C[1]=v[1]; k=1;
for (i=2;i<=N;i++)
if (!BS(i)) C[k++]=v[i];
printf("%d\n",k);
for (i=1;i<=k;++i)
printf("%d ",C[i]);
return 0;
}