Cod sursa(job #135885)

Utilizator webspiderDumitru Bogdan webspider Data 14 februarie 2008 20:03:10
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>
#include <iostream>

using namespace std;

const int maxN = 100001;

bool prim[ maxN ];
float phi[ maxN ];
int N, X;
int aX;
long long sum;

int main()
{
	freopen("sum.in","r",stdin);
	freopen("sum.out","w",stdout);
	

	for ( int i = 1; i <= maxN; i++ )
		phi[ i ] = i*1.0;

	for ( int i = 2; i <= maxN; i++ ) {
		if ( !prim[ i ] ) {
			for ( int j = i; j <= maxN; j += i ) {
				prim[ j ] = 1;
				phi[j] *= (float) ( 1-(1.0/i) );
			}
		}
	}


	for ( scanf("%d\n", &N); N; N-- ) {
		scanf("%d\n", &X );
		sum = 2*X*( (long long) phi[ X ] );
		printf("%lld\n", sum );

	}

	return 0;
}