Cod sursa(job #333853)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 24 iulie 2009 12:15:59
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#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;
}