Pagini recente » Cod sursa (job #800937) | Cod sursa (job #3204235) | Autentificare | Cod sursa (job #677940) | Cod sursa (job #333853)
Cod sursa(job #333853)
#include <stdio.h>
FILE *f,*s;
long int n,i,j,l,max,v1[100005],v2[100005],v3[100005];
int main()
{
f=fopen("sum.in","r");
s=fopen("sum.out","w");
fscanf(f,"%ld\n",&n);
for(i=1;i<=n;i++)
{
fscanf(f,"%ld\n",&v1[i]);
if(v1[i]>max)
max=v1[i];
}
v3[1]=2;
l=1;
for(i=3;i<=max;i+=2)
{
if(v2[i]==0)
{
l++;
v3[l]=i;
for(j=i+i;j<=max;j+=i)
v2[i]=1;
}
}
for(i=1;i<=n;i++)
{
long int rez=v1[i];
for(j=1;j<=l&&v3[j]<=v1[i];j++)
{
if(v1[i]%v3[j]==0)
{
rez*=(v3[j]-1);
rez/=v3[j];
}
}
fprintf(s,"%ld\n",rez*2*v1[i]);
}
fclose(s);
return 0;
}