Pagini recente » Cod sursa (job #2276010) | Cod sursa (job #2935516) | Cod sursa (job #45673) | Cod sursa (job #2843616) | Cod sursa (job #339722)
Cod sursa(job #339722)
#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);
}
}