Cod sursa(job #599141)

Utilizator andrianAndrian andrian Data 28 iunie 2011 02:24:36
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>

using namespace std;

long n, k=0;

void citire(){
    ifstream in("fractii.in");
    in >> n;
    in.close();
}


void afis(){
    ofstream out("fractii.out");
    out << k;
    out.close();
}

long cmmdc(long x, long y){
    long r;
    while(y!=0){
        r = x%y;
        x=y;
        y=r;
    }
    return x;
}

int num(long x){
    if(x == 1) return n;
    long k1=0, k2=0;
    for(long i=1;i<=x;++i)
        if(cmmdc(x,i) == 1) ++k1;
    k2=(n/x);
    k1*=k2;
    for(long i=k2*x;i<=n;++i)
        if(cmmdc(x,i) == 1) ++k1;
    return k1;
}

int main()
{
    citire();
    for(long i=1;i<=n;++i)  k+=num(i);
    afis();
    return 0;
}