Cod sursa(job #109480)

Utilizator alecmanAchim Ioan Alexandru alecman Data 25 noiembrie 2007 11:19:27
Problema Pairs Scor 20
Compilator cpp Status done
Runda preONI 2008, Runda 1, Clasa a 10-a Marime 1.13 kb
/*
 * 
 *
  infoarena - preONI 2008 - Runda I - Pairs
 *
 *
 */

#include<stdio.h>

#define INPUT "pairs.in"
#define OUTPUT "pairs.out"

FILE *fin=fopen(INPUT, "r"),*fout=fopen(OUTPUT, "w");

long nrNumere,valori[100002];

void readValues();	//function to extract data from input
void solveFunction();	//function to extrapolate a result from given data
long cmmdc(long, long);	//function to determine greatest common divisor
inline void printResult(long long val){fprintf(fout, "%lld\n", val);}

int main(){
  readValues();
  solveFunction();
  fclose(fin);
  fclose(fout);
  return 0;
}

void readValues(){
  fscanf(fin, "%ld", &nrNumere);
  for(long i=1;i<=nrNumere;++i)
    fscanf(fin, "%ld", &valori[i]);
}

void solveFunction(){
  long long nrTotal=0;
  for(long i=1;i<nrNumere;++i)
    for(long j=i+1;j<=nrNumere;++j)
      if(cmmdc(valori[i],valori[j])==1)
        ++nrTotal;
  printResult(nrTotal);
}

long cmmdc(long valoareUnu, long valoareDoi){
  long temp;
  while(valoareDoi!=0){
    temp = valoareDoi;
    valoareDoi = valoareUnu%valoareDoi;
    valoareUnu = temp;
  }
  return valoareUnu;
}