Pagini recente » Cod sursa (job #2629364) | Cod sursa (job #2742062) | Cod sursa (job #2741101) | Cod sursa (job #2552963) | Cod sursa (job #3238579)
#include<stdio.h>
void era(int max,int a[1000001])
{
for(int i=2;i<=max;i++)
if(a[i]==0)
{
{
for(int j=i+i;j<=max;j=j+i)
if(a[j]==0)
a[j]=i;
}
a[i]=i;
}
}
int prim(int a,int b,int c[100001])
{
int factor;
while(a!=1)
{
factor=c[a];
if(b%factor==0)
{
return 0;
}
while(a%factor==0)
a=a/factor;
}
return 1;
}
int b[100001],era1[1000001];
int main()
{
FILE*f=fopen("pairs.in","r");
FILE*g=fopen("pairs.out","w");
int a,c,max=0,x,y,s=0;
fscanf(f,"%d",&a);
for(int i=1;i<=a;i++)
{
fscanf(f,"%d",&c);
if(c>1&&c<1000000)
b[i]=c;
if(b[i]>max)
max=b[i];
}
era(max,era1);
c++;
for(int i=1;i<a;i++)
for(int j=1+i;j<=a;j++)
{
x=b[i];
y=b[j];
if(prim(x,y,era1))
s++;
}
fprintf(g,"%d",s);
}