Cod sursa(job #3238579)

Utilizator mariusfilip_andreiFilip Marius-Andrei mariusfilip_andrei Data 26 iulie 2024 19:03:09
Problema Pairs Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#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);
}