Pagini recente » Cod sursa (job #1351951) | Cod sursa (job #131250) | Cod sursa (job #2679646) | Cod sursa (job #2376494) | Cod sursa (job #942154)
Cod sursa(job #942154)
#include <fstream>
#include <limits>
using namespace std;
ifstream in("sum.in");
ofstream out("sum.out");
void sumeaza(long x);
long cmmdc(long a,long b);
int main()
{
int n,c;
in>>n;
in.ignore(numeric_limits<streamsize>::max(),'\n');
for(int i=0;i<n;++i)
{
in>>c;
in.ignore(numeric_limits<streamsize>::max(),'\n');
sumeaza(c);
}
in.close();
out.close();
return 0;
}
void sumeaza(long x)
{
long long sum=0;
const long N=100001;
long phi[N+1];
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);
sum=2*phi[x]*x;
out<<sum<<"\n";
}
long cmmdc(long a,long b)
{
int r;
while (b)
{
r=a%b;
a=b;
b=r;
}
return a;
}