Pagini recente » Cod sursa (job #1239696) | Cod sursa (job #1197284) | Cod sursa (job #2324393) | Cod sursa (job #1491038) | Cod sursa (job #69555)
Cod sursa(job #69555)
#include<stdio.h>
#include<fstream.h>
#include<math.h>
typedef struct
{
long x, e;
} factor;
long v[100001], u[100001];
long n, contor, nr, x;
void eratostene()
{
long long i,j;
for(i=2;i<=100000;i++) v[i]=i;
for(i=2;i<=100000;i++)
{
if(i>100000) break;
if(u[i]==0)
{
j=2;
v[i]--;
while(i*j<=100000)
{
u[i*j]=1;
v[i*j]=v[i*j]-v[i*j]/i;
j++;
}
}
}
}
int prim(long long x)
{
if (x==2) return 1;
if (x==1) return 0;
if (x%2==0) return 0;
for (long long unsigned d=3; d*d<=x; d+=2)
if (x%d==0) return 0;
return 1;
}
void prelucrare2()
{
long long i, j;
long long unsigned s1;
ifstream in("sum.in");
ofstream out("sum.out");
in>>n;
eratostene();
for (i=1; i<=n; i++)
{
in>>x;
if (prim(x)==0) s1=(v[x]*x);
else s1=(x-1)*x;
s1*=2;
out<<s1<<'\n';
}
}
int main()
{
prelucrare2();
return 0;
}