Cod sursa(job #942152)

Utilizator ShadoWolfCodrut Constantin Gusoi ShadoWolf Data 21 aprilie 2013 00:32:54
Problema Sum Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <limits>
using namespace std;

ifstream in("sum.in");
ofstream out("sum.out");

void sumeaza(long x);
long cmmdc(long a,long b);

int main()
{
	int n,c;
	in>>n;
	in.ignore(numeric_limits<streamsize>::max(),'\n');
	for(int i=0;i<n;++i)
	{
		in>>c;
		in.ignore(numeric_limits<streamsize>::max(),'\n');
		sumeaza(c);
	}
	in.close();
	out.close();
	return 0;
}

void sumeaza(long x)
{
	long long sum=0;
	const long N=10000;
	long phi[N+1];

	for (long i = 1; i <= N; ++i)
		phi[i] = i-1;
	for (long i = 2; i <= N; ++i)
		for (long j = 2*i; j <= N; j += i)
        phi[j] -= phi[i];
	sum=2*phi[x]*x;
	out<<sum<<"\n";
}

 
long cmmdc(long a,long b)
{
    int r;
    while (b)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}