Cod sursa(job #109532)

Utilizator DranaXumAlexandru Dumitru Paunoiu DranaXum Data 25 noiembrie 2007 11:37:39
Problema Pairs Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 1, Clasa a 10-a Marime 1.09 kb
#include<stdio.h>

int x[100001];

const int MAXSIZE=5000;
const int MAXSIZE2=500001;
int u[MAXSIZE];
int p[MAXSIZE2];  
int getPrimeNumbers(int n) {
     
   int i, j, nr = 1;  u[nr]=2;
   for (i = 3; i <= n; i += 2) {  
     if (p[i] == 0) {
       nr++;
       u[nr]=i;  
       for (j = i + i + i; j <= n; j += i << 1) {  
         p[j] = 1;  
       }  
     }  
   }  
   return nr; 
 } 


int main()
{
    FILE *fin,*fout;
    int i,j,n,k,ext,perechi=0;
    fin=freopen("pairs.in","r",stdin);
    fout=freopen("pairs.out","w",stdout);
    scanf("%d",&n);
    int ret=getPrimeNumbers(500000);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&x[i]);
        for(j=1;j<i;j++)
        {
            //check div
            ext=1;
            for(k=1;k<=ret && x[i]>=u[k] && x[j]>=u[k] && ext;k++)
            {
                if(x[i]%u[k]==0 && x[j]%u[k]==0)
                    ext=0;
            }
            if(ext) {
                perechi++;
            }
        }
    }
    printf("%d",perechi);
    fclose(fin);
    fclose(fout);
    return 0;
}