Cod sursa(job #109946)

Utilizator fireatmyselfBogdan-Alexandru Stoica fireatmyself Data 25 noiembrie 2007 12:59:20
Problema Pairs Scor 20
Compilator c Status done
Runda preONI 2008, Runda 1, Clasele 11-12 Marime 0.78 kb
#include <stdio.h>
#define NMAX 100100

int Par[NMAX], Imp[NMAX], N, I, P;

int gcd(int a, int b)
{
        if (b==0) return a;
        else return gcd(b,a%b);
}

int main()
{
        int i, j, npairs = 0;

        freopen("pairs.in", "r", stdin);
        scanf("%d", &N);

        for (i = 0; i < N; i++) {
            scanf("%d", &j);
            if (j&1) Imp[I++] = j;
            else Par[P++] = j;
        }

        for (i = 0; i < I; i++)
        {
                for (j = 0; j < P; j++)
                    if (gcd(Par[j], Imp[i])==1) npairs++;
                for (j = i+1; j < I; j++)
                    if (gcd(Imp[i],Imp[j])==1) npairs++;
        }

        freopen("pairs.out", "w", stdout);
        printf("%d\n", npairs);

        return 0;
}