Cod sursa(job #111680)

Utilizator hadesgamesTache Alexandru hadesgames Data 1 decembrie 2007 17:47:35
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#include <stdlib.h>
 int compare( const void* a, const void* b ) {
   int* arg1 = (int*) a;
   int* arg2 = (int*) b;
   if( *arg1 < *arg2 ) return -1;
   else if( *arg1 == *arg2 ) return 0;
   else return 1;
 }              
int main()
{
	FILE *in,*out;
	int a[1001],b[1001],nr=0,i,j,d,n;
	in=fopen("economie.in","r");
	out=fopen("economie.out","w");
	fscanf(in,"%d",&n);
	for (i=0;i<n;i++)
		fscanf(in,"%d",&a[i]);
	qsort(a,n,sizeof(a[0]),compare);
	for (i=0;i<n;i++)
	{
		d=1;
		for (j=1;j<=nr;j++)
			if (a[i]%b[j]==0)
			{
				d=0;
				break;
			}
		if (d)
		{
			nr++;
			b[nr]=a[i];
		}
	}
	fprintf(out,"%d\n",nr);
	for (i=1;i<=nr;i++)
		fprintf(out,"%d\n",b[i]);
	fclose(in);
	fclose(out);
}