Pagini recente » Cod sursa (job #1520099) | Cod sursa (job #2716951) | Cod sursa (job #1068264) | Cod sursa (job #415500) | Cod sursa (job #897394)
Cod sursa(job #897394)
using namespace std;
#include<cstdio>
#include<vector>
#include<algorithm>
#define dmax 100010
vector<int>phi(2*dmax);
void calc_phi(int n);
int main ()
{
int i,n,max;
vector<int>v(dmax);
FILE *f,*g;
f=fopen("sum.in","r");
fscanf(f,"%d%d",&n,&max);
v[1]=max;
for(i=2;i<=n;i++)
{
fscanf(f,"%d",&v[i]);
max=max<v[i] ?v[i]:max;
}
calc_phi(max*2);
fclose(f);
g=fopen("sum.out","w");
for(i=1;i<=n;i++)
fprintf(g,"%lld\n",(((long long)phi[v[i]]*(long long)v[i])<<1));
fclose(g);
return 0;
}
void calc_phi (int n)
{
phi[1]=1;
int i,j;
for(i=2;i<=n;i++)
phi[i]=i;
for(i=2;i<=n;i++)
if(phi[i]==i)
for(j=i;j<=n;j+=i)
phi[j]*=(i-1),phi[j]/=i;
}