Pagini recente » Cod sursa (job #2310235) | Cod sursa (job #491226) | Cod sursa (job #1677911) | Cod sursa (job #175653) | Cod sursa (job #2197108)
#include <cstdio>
#define VM 100000
using namespace std;
int e[VM + 1];
inline void calc_Euler() {
for ( int i = 2; i <= VM; i ++ )
e[i] = i;
for ( int i = 2; i <= VM; i ++ )
if ( e[i] == i )
for ( int j = i; j <= VM; j += i )
e[j] = e[j] / i * ( i - 1 );
}
int main() {
int n, nr;
FILE *fin = fopen( "sum.in", "r" ), *fout = fopen( "sum.out", "w" );
fscanf( fin, "%d", &n );
calc_Euler();
for ( int i = 0; i < n; i ++ ) {
fscanf( fin, "%d", &nr );
fprintf( fout, "%lld\n", (long long)e[nr] * nr * 2 );
/// cmmdc( x, n ) = 1 => cmmdc( 2n - x, n ) = 1;
}
fclose( fin );
fclose( fout );
return 0;
}