Cod sursa(job #2021435)

Utilizator DianaPopDiana Pop DianaPop Data 13 septembrie 2017 18:12:39
Problema Indep Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <stdio.h>

int sol[1010][50],v[50];

int euclid( int a , int b ){
    int r;
    while( b > 0 ){
        r = a % b;
        a = b;
        b = r;
    }
    return a;
}
void sum( int a[50] , int b[50] ){
    int i;
    int x = 0;
    for( i = 1 ; i <= a[0] || i <= b[0] || x > 0 ; i++ ){
        a[i] = a[i] + b[i] + x;
        x = a[i] / 1000000;
        a[i]= a[i] % 1000000;
    }
    a[0] = i - 1;
}
int main(){

    int n , i , j , x;

    freopen( "indep.in" , "r" , stdin );
    freopen( "indep.out" , "w" , stdout );

    scanf( "%d" , &n );
    v[0] = 1;
    v[1] = 1;
    for( i = 1 ; i <= n ; i++ ){
        scanf( "%d" , &x );
        for( j = 1 ; j <= 1000 ; j++ ){
            sum( sol[euclid( x , j )] , sol[j] );
        }
        sum( sol[x] , v );
    }
    printf( "%d" , sol[1][sol[1][0]] );

    for( i = sol[1][0] - 1 ; i >= 1 ; i-- ){
        printf( "%.6d" , sol[1][i] );
    }

    return 0;
}