Cod sursa(job #245650)

Utilizator ProstuStefan-Alexandru Filip Prostu Data 18 ianuarie 2009 14:12:31
Problema Sum Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>
#include <math.h>
int main()
{FILE *fin=fopen("sum.in","rt");
FILE *fout=fopen("sum.out","wt");
const int prim[]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317};
int i,n,k,j,stop,aux;
int s;
fscanf(fin,"%d",&n);
for (i=0;i<n;++i)
	{fscanf(fin,"%d",&k);
	s=k;aux=k;stop=(int)sqrt(k);
	for (j=0;prim[j]<=stop && aux>1;++j)
		if (aux%prim[j]==0)
			{s-=(s/prim[j]);
			while (aux%prim[j]==0) aux/=prim[j];}
	if (aux!=1) s-=(s/aux);
	fprintf(fout,"%lld\n",((long long)s*k)<<1);}
fclose(fin);
fclose(fout);
return 0;}