Cod sursa(job #339722)

Utilizator TyberFMI Dogan Adrian Ioan Lucian Tyber Data 11 august 2009 13:19:35
Problema Pairs Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
#include<vector>
#define nmax 100010
#define nmax1 1000010
using namespace std;
void sieve(int);
void solve(int,int);
int n,v[nmax],prime[nmax1],c;
int main()
{
	freopen("pairs.in","r",stdin);
	freopen("pairs.out","w",stdout);
	scanf("%d",&n);
	int i,j;
	for(i=1;i<=n;i++)
		scanf("%d",&v[i]);
	memset(prime,1,sizeof(prime));
	for(i=1;i<n;i++)
	{
		sieve(v[i]);
		for(j=i+1;j<=n;j++)
			solve(v[i],v[j]);
	}
	printf("%d\n",c);
	return 0;
}
void sieve(int n)
{
	int i,j;
	for(i=2;i<=n;i++)
		if(prime[i])
			for(j=i+i;j<=n;j=j+i)
				prime[j]=0;
}
void solve(int n,int a)
{
	int i,check=0;
	for(i=2;i<=n;i++)
		if(prime[i]!=0&&a%i==0&&a!=i&&n%i==0)check++;
	if(check==0){
		c++;
		printf("%d %d\n",n,a);
	}
}