Cod sursa(job #2404865)

Utilizator pslaPislariu Alexandru psla Data 13 aprilie 2019 15:01:27
Problema Fractii Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#define Nmax 1000001
using namespace std;


long long numarFractii(long long n)
{/*Pentru fiecare numarator verificam cate fractii nu se iau in considerare
=> cati multiplii are numaratorul pana la n (n/i) */
    long long phi[Nmax];/*phi[i] -> numarul fractiilor ramase cu numitorul i*/

    for(int i=1; i<=n; i++)
        phi[i]=i-1;

/*ciurul lui eratostene */
    for(int i=1; i<=n/2; i++)
        for(int j=2*i; j<=n; j+=i)
            phi[j]=phi[j]-phi[i];/*pentru fiecare multiplu al lui i eliminam fractiile i/j */

    long long rez=0;
    for(int i=1; i<=n; i++)
        rez+=phi[i];

    return 2*rez + 1;
}

int main()
{ifstream in("fractii.in");
    int n;
    in>>n;
in.close();

ofstream out("fractii.out");
    out<<numarFractii(n);
out.close();
    return 0;
}