Cod sursa(job #2782373)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 12 octombrie 2021 12:00:19
Problema Sum Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#define MAX 100001
 
int f[ MAX + 10 ];
long long rez;
int n;
 
void Precalcul() {
    for( int i = 1; i <= MAX; i++ )
        f[ i ] = i;
    for( int i = 2; i <= MAX; i++ )
        if( f[ i ] == i )
            for( int j = i; j <= MAX; j += i )
                f[ j ] = f[ j ] / i * ( i - 1 );
}
 
int main()
{
    int x;
    Precalcul();
 
    FILE *fin = fopen( "sum.in", "r" );
    FILE *fout = fopen( "sum.out", "w" );
    fscanf( fin, "%d", &n );
    
    for( int i = 0; i < n; i++ ) {
        fscanf( fin, "%d", &x );
        fprintf( fout, "%lld\n", 2LL * x * f[ x ] );
    }

    fclose( fin );
    fclose( fout );
    return 0;
}