Cod sursa(job #1849246)

Utilizator mihai.alphamihai craciun mihai.alpha Data 17 ianuarie 2017 10:47:09
Problema Sum Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>

FILE *fin, *fout;

#define BUF 1 << 17

char buf[BUF];
int pos = BUF;

inline char next()  {
    if(pos == BUF)
        fread(buf, 1, BUF, fin), pos = 0;

    return buf[pos++];
}

inline int read()  {
    int x = 0;
    char ch = next();

    while(!isdigit(ch))
        ch = next();

    while(isdigit(ch))  {
        x = x * 10 + ch - '0';
        ch = next();
    }

    return x;
}

#define Q 100000

int phi[Q + 1];


int main()  {
    fin = fopen("sum.in", "r");
    fout = fopen("sum.out", "w");

    for(int i = 1;i <= Q;i++)  {
        phi[i] = i - 1;
    }

    for(int i = 2;i <= Q;i++)
        for(int j = 2 * i;j <= Q;j += i)
            phi[j] -= phi[i];

    int N = read();

    for(int i = 0;i < N;i++)  {
        int X = read();

        fprintf(fout, "%d\n", 2 * X * phi[X]);
    }

    fclose(fin);
    fclose(fout);

    return 0;
}