Pagini recente » Cod sursa (job #1431081) | Cod sursa (job #1397096) | Cod sursa (job #1865257) | Cod sursa (job #2171803) | Cod sursa (job #2096711)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sum.in");
ofstream g("sum.out");
int n, k, phi[100001];
//Rezolvarea mea
int cmmdc(int a, int b){
while(a!=b)
if(a>b)
a-=b;
else
b-=a;
return a;
}
int 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(int n){
for(int i=1; i<=n; i++)
phi[i]=i-1;
for(int i=2; i<=n; i++)
for(int j=2*i; j<=n; j+=i)
phi[j]-=phi[i];
}
void sum(int n){
for(int i=1; i<=n; i++){
f>>k;
g<<2*k*phi[k]<<"\n";
}
}
int main()
{
f>>n;
indiceleLuiEuler(100000);
sum(n);
return 0;
}