Cod sursa(job #270104)

Utilizator mihnea_andreiMihnea Andrei mihnea_andrei Data 3 martie 2009 19:17:12
Problema Sum Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream> 
#define N 100010 

using namespace std; 

ifstream in ("sum.in"); 
ofstream out ("sum.out"); 

int x[N],n,phi[N]; 

void citire () 
{ 
	in>>n; 
	for(int i=1;i<=n;i++) 
		in>>x[i]; 
} 

int maxim () 
{ 
	int maxim=0;
	for(int i=1;i<=n;i++) 
	{ 
		if(maxim<x[i]) 
			maxim=x[i];
	} 
	return maxim;
}

void calcul (int n) 
{ 
	for(int i=1;i<=n;i++) 
		phi[i]=i; 
	for(int i=2;i<=n;i++) 
	{ 
		if(phi[i]==i) 
		{ 
			for(int j=i;j<=n;j=j+i) 
				phi[j]=(phi[j]/i)*(i-1);
		}
	}
}

int main () 
{ 
	int m;
	citire (); 
	m=maxim (); 
	calcul (m); 
	for(int i=1;i<=n;i++) 
		out<<2*x[i]*phi[x[i]]<<endl; 
	in.close (); 
	out.close (); 
	return 0; 
}