Cod sursa(job #137733)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 17 februarie 2008 14:11:46
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
int main(){
	int v[100000],w[100000],i,j,n,inj,gata,aux,k=0;
	FILE*f=fopen("economie.in","r");
	FILE*g=fopen("economie.out","w");
	fscanf(f,"%d",&n);
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&v[i]);
	inj=n;
	while(inj>1){
		inj/=2;
		do {
			gata=1;
			for(i=1;i<=n-inj;i++)
				if(v[i]>v[i+inj]){
					aux=v[i];
					v[i]=v[i+inj];
					v[i+inj]=aux;
					gata=0;
				}
		}
		while(!gata);
	}
	w[++k]=v[1];
	for(i=2;i<=n;i++){
		gata=1;
		for(j=1;j<=k;j++)
			if(v[i]%w[j]) { gata=0; break;}
		if(!gata) w[++k]=v[i];
	}
	fprintf(g,"%d",k);
}