Cod sursa(job #2981917)

Utilizator pmih12Petrache Mihnea pmih12 Data 19 februarie 2023 00:51:55
Problema Fractii Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<iostream>
#include<fstream>
#include<cmath>
#include<algorithm>
#define ull unsigned long long int
using namespace std;

ifstream f("fractii.in");
ofstream g("fractii.out");

int totient(int n)
{
    int f=2, p;
    float t=(float)n;
    while(n>1)
    {
        p=0;
        while(n%f==0)
            p++, n/=f;
        if(p)
            t*=(float)(1-1.0/f);
        f++;
        if(n>1&&f*f>n)f=n;
    }
    
    return (int)t;
}

ull numara(int x)
{
    ull q=1;
    for(int i=2;i<=x;++i)
        q+=2*totient(i);
    return q;
}

int main()
{
    int x;f>>x;
    f.close();
    g<<numara(x)<<'\n';
    g.close();
    return 0;
}