Pagini recente » Cod sursa (job #939157) | Cod sursa (job #1870737) | Cod sursa (job #650917) | Cod sursa (job #2811794) | Cod sursa (job #2096721)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sum.in");
ofstream g("sum.out");
int n, phi[100001];
//Rezolvarea mea
int cmmdc(int a, int b){
while(a!=b)
if(a>b)
a-=b;
else
b-=a;
return a;
}
void sumRezolvareaMea(){
long long s;
for(int i=1; i<=n; i++){
f>>k;
s=1;
for(int j=2; j<=2*k; j++){
if(j!=k && cmmdc(k, j)==1)
s+=j;
}
g<<s<<"\n";
}
}
//Rezolvare oficiala
void indiceleLuiEuler(){
for(int i=1; i<=100000; i++)
phi[i]=i-1;
for(int i=2; i<=100000; i++)
for(int j=2*i; j<=100000; j+=i)
phi[j]-=phi[i];
}
void sum(int n){
long long k;
for(int i=1; i<=n; i++){
f>>k;
g<<2*k*phi[k]<<"\n";
}
}
int main()
{
f>>n;
indiceleLuiEuler();
sum(n);
return 0;
}