Pagini recente » Cod sursa (job #1102039) | Cod sursa (job #955218) | Cod sursa (job #2392845) | Cod sursa (job #2394251) | Cod sursa (job #1178556)
#include <iostream>
#include <cstdio>
int fi(int n);
void creazaciur();
using namespace std;
int ciur[100001];
int prime[100001];
int nrprime;
int n,x;
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
creazaciur();
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>x;
printf("%ld \n",2*x*fi(x));
}
return 0;
}
int fi(int n){
int prod=1;
for(int i=1; i<=nrprime; i++)
{
int p=prime[i];
if(n%p==0){
int exp=1;
int aux=p;
while(n%(aux*p)==0){ exp++; aux*=p;}
prod=prod*(p-1)*(aux/p);
}
}
return prod;
}
void creazaciur(){
for(int i=2; i<=100000; i++)
if(!ciur[i]){ ciur[i]=1;
nrprime++;
prime[nrprime]=i;
for(int j=i; j<=100000; j+=i)ciur[j]=1;
}
}