Pagini recente » Cod sursa (job #2877898) | Cod sursa (job #1550624) | Cod sursa (job #2221937) | Cod sursa (job #1022550) | Cod sursa (job #281545)
Cod sursa(job #281545)
#include <stdio.h>
#include <algorithm>
#define N 1005
using namespace std;
int n,v[1005],sol[1005],r,marc[50005],vmax;
int verificare()
{
int i;
for (i=1; i<=n; i++)
if (marc[v[i]]==0)
return 0;
return 1;
}
void operatie()
{
int i,j;
for (i=sol[r]; i<=vmax; i+=sol[r])
marc[i]++;
for (i=1; i<=vmax; i++)
for (j=i+1; i+j<=vmax; j++)
if (marc[i] && marc[j])
marc[i+j]++;
}
int main()
{
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
int i;
scanf("%d",&n);
for (i=1; i<=n; i++)
scanf("%d",&v[i]);
sort(v+1,v+n+1);
vmax=v[n];
for (i=1; i<=n; i++)
if (verificare())
{
printf("%d\n",r);
for (i=1; i<=r; i++)
printf("%d\n",sol[i]);
break;
}
else
{
sol[++r]=v[i];
operatie();
}
return 0;
}