Pagini recente » Algoritmiada 2009 - Runda 2, Clasele 9-10 | Borderou de evaluare (job #77425) | Rezultatele filtrării | Rezultatele filtrării | Cod sursa (job #65024)
Cod sursa(job #65024)
#include<stdio.h>
long int n,i,j,fi[100001],x,k;
int main()
{
FILE *f,*g;
f=fopen("sum.in","r");
g=fopen("sum.out","w");
fscanf(f,"%ld",&n);
for(i=2;i<=100000;i++)
if(!fi[i])
for(j=i;j<=100000;j=j+i)
{ if(!fi[j])fi[j]=1;
k=j/i;fi[j]*=i-1;
while(k%i==0){fi[j]*=i;k/=i;}
}
for(i=1;i<=n;i++)
{fscanf(f,"%ld",&j);
fprintf(g,"%ld\n",(j*fi[j])/2);}
fcloseall();
return 0;
}