Cod sursa(job #2781496)
Utilizator | Data | 9 octombrie 2021 17:45:21 | |
---|---|---|---|
Problema | Sum | Scor | 70 |
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 <<(long long)(2 * x * euler[x]) << '\n';
}
return 0;
}