Pagini recente » Cod sursa (job #983043) | Cod sursa (job #3344774) | Cod sursa (job #1143219) | Cod sursa (job #1796142) | Cod sursa (job #1393178)
#include <cstdio>
#include <cmath>
#define DIM 10000
char buff[DIM];
int poz=0;
void citeste(int &numar)
{
numar = 0;
while (buff[poz] < '0' || buff[poz] > '9')
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
while ('0'<=buff[poz] && buff[poz]<='9')
{
numar = numar*10 + buff[poz] - '0';
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
}
}
long long sum,phi;
int n,x;
int div[501];
int main()
{
freopen ("sum.in","r",stdin);
freopen ("sum.out","w",stdout);
citeste(x);
for(int vv=1;vv<=x;vv++)
{
citeste(n);
phi=n;
int temp=n;
int p=1;
int si=(int)sqrt(n)+1;
if(n%2==0)
{
phi/=2;
while(n%2==0) n/=2;
}
for(int j=3;j<=si;j+=2)
{
if(n%j==0)
{
phi/=j;
phi*=(j-1);
while(n%j==0) n/=j;
}
}
if(n!=1)
{
phi/=n;
phi*=(n-1);
}
sum=(long long)2*temp*phi;
printf("%lld\n",sum);
}
}