Cod sursa(job #2450871)

Utilizator AnimusFabian Animus Data 24 august 2019 18:52:36
Problema Fractii Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <fstream>

using namespace std;

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

long long phi(long long n)
{
    long long result = n;
    for (long long p = 2; p * p <= n; ++p) {
        if (n % p == 0) {
            while (n % p == 0)
                n /= p;
            result -= result / p;
        }
    }

    if (n > 1)
        result -= result / n;
    return result;
}

long long n, a00[1000001] = {1, 2, 3, 5, 7};

long long fA00(long long n){
    if(a00[n-1]) return a00[n-1];
    else{
        long long i = n-1;
        for(; !a00[i]; i--);
        i+=1;
        for(; i <= n-1; i++){
            a00[i] = a00[i-1] + phi(i);
        }
        return a00[n-1];
    }
}

int main(){
    f >> n; n+=1;
    g << 2*fA00(n)-3;
}