Pagini recente » Cod sursa (job #237794) | Cod sursa (job #1346904) | Cod sursa (job #1009298) | Cod sursa (job #871560) | Cod sursa (job #2226374)
#include <fstream>
using namespace std;
ifstream fin("sum.in");
ofstream fout("sum.out");
typedef long long ll;
typedef long double ld;
const int N=30000+5;
ll v[N],phi[N];
int main()
{
for(int i=1;i<N;i++)
phi[i]=i;
for(int i=2;i<N;i++)
if(phi[i]==i)
for(int j=i;j<N;j+=i)
phi[j]/=i,phi[j]*=(i-1);
v[1]=1;
v[2]=1;
for(int i=3;i<N;i++)
{
v[i]=(ll)i*(i+1)/2;
for(int j=1;j*j<=i;j++)
{
if(i%j==0)
{
if(j!=1) v[i]-=v[i/j]*j;
if(j*j==i) break;
v[i]-=v[j]*(i/j);
}
}
}
for(int i=1;i<N;i++)
v[i]+=v[i],v[i]+=(ll)i*phi[i];
int t;
fin>>t;
while(t--)
{
int x;
fin>>x;
fout<<v[x]<<"\n";
}
return 0;
}