Cod sursa(job #2723769)

Utilizator Rares31100Popa Rares Rares31100 Data 15 martie 2021 16:00:16
Problema Sum Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>
#define ULL unsigned long long
#define MAX (ULL)100000

std::ifstream fin("sum.in");
std::ofstream fout("sum.out");
ULL a[MAX + 1], nrMult[MAX + 1];

int main()
{
	for(ULL i = 2, nr = 3; i <= MAX; i++)
	{
		nr += i * 4 - 1;
		a[i] += nr;

		if(!nrMult[i])
		{
			nrMult[i] = 1;
			a[i] -= i * 3;
		}
		else
			a[i] += i * 3;

		for(ULL j = i * 2, nr2 = i * 3; j <= MAX; j += i)
		{
			nrMult[j]++;
			nr2 += j * 4 - i;
			a[j] += (nrMult[i] % 2 ? -nr2 : nr2);
		}
	}

	int n, x;
	fin >> n;
	while(n--)
	{
		fin >> x;
		fout << a[x] << '\n';
	}

	return 0;
}