Cod sursa(job #2096721)

Utilizator AndreiOffCovaci Andrei-Ion AndreiOff Data 29 decembrie 2017 17:22:02
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#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;
}