Pagini recente » Cod sursa (job #2563114) | Cod sursa (job #293327) | Cod sursa (job #1130367) | Cod sursa (job #2059800) | Cod sursa (job #235643)
Cod sursa(job #235643)
#include<iostream>
#include<stdio.h>
FILE *f=fopen("economie.in","r"),*g=fopen("economie.out","w");
short v[50000];long a[1001],max;
int divide(int st,int dr)
{
int aux=a[st];
while(st<dr)
{
while(st<dr&&a[dr]>aux)
dr--;
a[st]=a[dr];
while(st<dr&&a[st]<aux)
st++;
a[dr]=a[st];
}
a[st]=aux;
return st;
}
void qsort(int st,int dr)
{
int m=divide(st,dr);
if(m-1>st) divide(st,m-1);
if(m+1<dr) divide(m+1,dr);
}
int main()
{
int i,j,n;long i1,min=0,s=0;
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
{
fscanf(f,"%ld",&a[i]); max=max>a[i]?max:a[i];
}
qsort(1,n);
for(i=1;i<=n;i++)
{
s+=a[i];
if(!a[i])
v[i]=2,min++;
for(i1=a[i]*2;i1<=max+1;i1+=a[i])
if(!v[i1]) v[i1]=1;
for(i1=s;i1<=max+1;i1+=s)
if(!v[i1]) v[i1]=1;
}
fprintf(g,"%ld\n",min);
for(i1=1;i1<=max+1;i1++)
if(v[i1]==2)
fprintf(g,"%ld\n",a[i]);
return 0;
}