Cod sursa(job #2781500)
Utilizator | Vlad Dimulescu vlad_dimu | Data | 9 octombrie 2021 17:53:34 |
---|---|---|---|
Problema | Sum | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
#define XMAX 100000
using namespace std;
ifstream fin( "sum.in" );
ofstream fout( "sum.out" );
int euler[XMAX + 1];
void indicator(){
int i, j;
for( i = 1; i <= XMAX; i++ )
euler[i] = i;
for( i = 2; i <= XMAX; i++ )
if( euler[i] == i )
for( j = i; j <= XMAX; j += i )
euler[j] = euler[j] / i * (i - 1);
}
int main(){
int n, x;
indicator();
fin >> n;
while( n-- ){
fin >> x;
fout <<1LL * 2 * x * euler[x] << '\n';
}
return 0;
}