Cod sursa(job #728418)

Utilizator fhandreiAndrei Hareza fhandrei Data 28 martie 2012 18:35:01
Problema Sum Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
//Include
#include <fstream>
using namespace std;

//Constante
const int MAX_SIZE = (int)1e5+1;

//Functii
int gauss(int val);

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

int nrIntrebari;
int limit;
int sume[MAX_SIZE], question[MAX_SIZE];

//Main
int main()
{
	in >> nrIntrebari;
	for(int i=1 ; i<=nrIntrebari ; ++i)
	{
		in >> question[i];
		if(question[i] > limit)
			limit = question[i];
	}
	limit <<= 1;
	
	int k;
	for(int i=2 ; i<=limit ; ++i)
	{
		/*if(!sume[i])
			sume[i] = i<<1;*/
		sume[i] += i*3;
		for(int j=i<<1 ; j<=limit ; j+=i)
			for(k=j-i, sume[j]+=i ; i<k ; k-=i)
			{
				sume[j] += k;
				if(j < k<<1)
					sume[k] += j;
			}
	}
	
	for(int i=1 ; i<=nrIntrebari ; ++i)
		out << (gauss(question[i]<<1) - sume[question[i]]) << '\n';
	
	in.close();
	out.close();
	return 0;
}

int gauss(int val)
{	return (val*(val+1)>>1);	}