Cod sursa(job #135879)

Utilizator webspiderDumitru Bogdan webspider Data 14 februarie 2008 19:58:02
Problema Sum Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <stdio.h>
#include <iostream>

using namespace std;

const int maxN = 100001;
const int maxP = 10001;

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*( (int) phi[ X ] );
		printf("%lld\n", sum );

	}

	return 0;
}