Mai intai trebuie sa te autentifici.

Cod sursa(job #114741)

Utilizator hellraizerChiperi Matei hellraizer Data 15 decembrie 2007 17:31:07
Problema Pairs Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>

#define N_MAX 100001

int N,M,MAX,res;
char v[1000001];

void citire(){
	int i,x;
	FILE *fin=fopen("pairs.in","r");
	fscanf(fin,"%d",&N);
	for (i=1;i<=N;i++){
		fscanf(fin,"%d",&x);
		v[x]=1;
		if (x>MAX)
			MAX=x;
	}
	fclose(fin);
}

void prelucrare(){
	int i,x,p,nr,j,bun;
	for (i=2;i<=MAX;i++){
		x=0;
		for (j=i;j<=MAX;j+=i)
			if (v[j])
				x++;
		nr=0,p=i,j=2,bun=1;
		while ((p>1)&&bun){
			if (p%j==0){
				p/=j;
				nr++;
				if (p%j==0)
					bun=0;
			}
			else
				j++;
		}
		if (bun)
			if (nr%2)
				res+=x*(x-1)/2;
			else
				res-=x*(x-1)/2;
	}
	res=N*(N-1)/2-res;
}

void afisare(){
	FILE *fout=fopen("pairs.out","w");
	fprintf(fout,"%d\n",res);
	fclose(fout);
}

int main(){
	citire();
	prelucrare();
	afisare();
	return 0;
}