Cod sursa(job #62989)

Utilizator FlorianFlorian Marcu Florian Data 25 mai 2007 12:41:52
Problema Sum Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<stdio.h>
long  v[100001],n,u[100001];
void eratostene()
	{
	long i,j,n;
	n=100001;
	for(i=2;i<=100001;i++) v[i]=i;

	for(i=2;i<=100001;i++)
		if(u[i]==0)
			{
			j=2;
			v[i]--;
			while(i*j<=n)
				{

				u[i*j]=1;
				v[i*j]=v[i*j]-v[i*j]/i;
				j++;}
			}
	}
int main()
	{
	long x,sol,t;
	eratostene();
	FILE*g=fopen("sum.out","w");
	FILE*f=fopen("sum.in","r");
	fscanf(f,"%ld",&t);
	for(long i=1;i<=t;++i)
		{
		fscanf(f,"%ld",&x);
		sol=2*v[x]*x;
		fprintf(g,"%ld\n",sol);
		}
	return 0;}