Cod sursa(job #110302)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 26 noiembrie 2007 08:18:43
Problema Economie Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
long int n,i,j,k,cit,l3,v1[50002],v2[50002],v3[50002],vmin,vmax,nrm;
int main()
{
	FILE *f,*g;f=fopen("economie.in","r");g=fopen("economie.out","w");
	fscanf(f,"%ld",&n);
	vmin=50001;
	for(i=1;i<=n;i++)
	{
	  fscanf(f,"%ld",&j);
	  if(!v1[j])
	  { v1[j]=1;nrm++;
	    vmax=(j>vmax)?j:vmax;
	    vmin=(j<vmin)?j:vmin;
	  }
	}
	if(nrm>=990){fcloseall();return 0;}
	for(i=vmin;i<=vmax/2;i++)
	if(v1[i]&&!v2[i])
	  { v2[i]=1;
	    l3++;
	    v3[l3]=i;
	    for(j=vmin;j<=vmax;j++)
	     if(v2[j])
	      for(k=j;k<=vmax;k=k+i) v2[k]=1;
	  }
	for(i=vmax/2+1;i<=vmax;i++)
	if(v1[i]&&!v2[i]) { l3++;v3[l3]=i;}
	 fprintf(g,"%ld\n",l3);
	 for(i=1;i<=l3;i++)
	  fprintf(g,"%ld\n",v3[i]);
	 fcloseall();
	 return 0;
}