Cod sursa(job #863972)

Utilizator lukkerLiNoimi Semain lukker Data 24 ianuarie 2013 14:46:39
Problema Pairs Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
using namespace std;

bool p[1001][1000001] = {false};

int comp(int x, int y, int a, int b) {
	int max = 0;
	if(a > b) max = a; else max = b;
	
	for(int i=1;i<=max;i++)
		if(p[x][i]&&p[y][i]) return 0;
	
	return 1;
}

void prel(int x, int y) {
	int i = 1;
	while(x>1) {
		if(x%(++i)==0) {
			p[y][i] = true;
			x /= i;
		}
	}
}

int main() {
	int vec[101];
	int n;
	ifstream fin("pairs.in");
	ofstream fout("pairs.out");
	fin>>n;
	for(int i=1;i<=n;i++) {
		fin>>vec[i];
		prel(vec[i], i);
	}
	fin.close();
	
	int count = 0;
	
	for(int i=1;i<n;i++) {
		for(int j=i+1;j<=n;j++) {
			count += comp(i, j, vec[i], vec[j]);
		}
	}
	
	fout<<count<<endl;
	fout.close();
	return 0;
}