Cod sursa(job #1179117)

Utilizator Bluedrop_demonPandia Gheorghe Bluedrop_demon Data 27 aprilie 2014 23:48:46
Problema Fractii Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <stdio.h>

long factori[1000];
int poz = 0;

void populateFactori( long n ) {
    long i;
    poz = 0;
    long aux = n;
    for( i=2; i<=aux; i++ ) {
         if( n % i == 0 ) {
             factori[poz++] = i;
             while( n % i == 0 ) {
                    n /= i;
             }
         }
    }
}

int calcNrFractii( long N ) {
     long p, q;
     int i;
     int nr = 0;
     char reductibila;
     for( p=1; p<=N; p++ ) {
          populateFactori( p );
          for( q=1; q<=N; q++ ) {
               reductibila = 0;
               for( i=0; i<poz; i++ ) {
                    if( q % factori[i] == 0 ) {
                        reductibila = 1;
                        break;
                    }
               }
               if( !reductibila ) {
                   nr++;
               }
          }
     }
     return nr;
}

int main() {
    FILE* f;
    FILE* g;
    int i;
    

    f = fopen( "fractii.in", "rt" );
    long N;
    fscanf( f, "%ld", &N );
    
    g = fopen( "fractii.out", "wt" );
    
    fprintf( g, "%ld", calcNrFractii( N ) );
    
    fclose( g );
    fclose( f );
    return 0;
}