Cod sursa(job #2216050)
Utilizator | Medan Florin flospeed | Data | 24 iunie 2018 20:08:50 |
---|---|---|---|
Problema | Sum | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <stdio.h>
int e[100001];
void euler(int n)
{
for(int i=2; i<=n; i++)
e[i]=i;
for(int i=2; i<=n; i++)
if(e[i]==i)
for(int j=i;j<=n;j+=i)
{
e[j]=e[j]/i*(i-1);
}
}
int main()
{
int n;
FILE *f=fopen("sum.in","r");
FILE *g=fopen("sum.out","w");
fscanf(f,"%d",&n);
euler(100001);
for(int i=1;i<=n;i++)
{
int nr;
fscanf(f,"%d",&nr);
fprintf(g,"%d\n",nr*2LL*e[nr]);
}
return 0;
}