Cod sursa(job #809158)

Utilizator doomaSalagean Calin dooma Data 7 noiembrie 2012 22:31:30
Problema Fractii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>
#define LMAX 1000002
using namespace std;
unsigned long euler(unsigned long length){
    unsigned long phi[LMAX],i,j,sum = 0;
    for(i = 1; i <= length; i++){
        phi[i] = i;
    }
    for(i = 2; i <= length; i++){
        if(phi[i] == i){
            for(j = i; j <= length; j+=i){
                phi[j] /= i;
                phi[j] *= (i-1);
            }
        }
    }
    for(i = 1; i <= length; i++){
        sum += phi[i];
    }
    return sum;
}
int main(){
    unsigned long n;
    ifstream fin("fractii.in");
    ofstream fout("fractii.out");
    fin>>n;
    if(n == 0) fout << "0\n";
    else fout << euler(n)*2-1<<"\n";
    fin.close();
    fout.close();
    return 0;
}