Cod sursa(job #2780964)

Utilizator teodorescunicolasteodorescu nicolas alexandru teodorescunicolas Data 8 octombrie 2021 10:30:47
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
#include <bitset>
#define NMAXX 1000000

using namespace std;

int euler[NMAXX + 1];

int main()
{
    FILE *fin, *fout;
    int n, i, d;
    long long cnt;

    fin = fopen( "fractii.in", "r" );
    fout = fopen( "fractii.out", "w" );

    fscanf( fin, "%d", &n );

    for ( i = 1; i <= n; i++ ) {
        euler[i] = i;
    }

    for ( i = 2; i <= n; i++ ) {
        if ( euler[i] == i ) {
            for ( d = i; d <= n; d += i ) {
                euler[d] /= i;
                euler[d] *= (i - 1);
            }
        }
    }

    cnt = 0;
    for ( i = 2; i <= n; i++ ) {
        cnt += 2 * euler[i];
    }

    fprintf( fout, "%lld", cnt + 1 );
    fclose( fin );
    fclose( fout );
    return 0;
}