Cod sursa(job #3273214)

Utilizator elisabetastroescuElisabeta Stroescu elisabetastroescu Data 1 februarie 2025 11:32:29
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda cex_8 Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int j,Min[1000005];
long long nr=1;
bool p[1000005];
void ciur()
{
    int i;
    for(i=2;i*i<=1000000;i++)
        if(p[i]==false)
        for(j=2*i;j<=1000000;j+=i)
    {
        p[j]=true;
        if(!Min[j])Min[j]=i;
    }
    for(i=1;i<=1000000;i++)
    if(!p[i])Min[i]=i;

}
int euler( int x)
{
    int r=x, d=2;
    while(x>1)
    {
        d=Min[x];
        r=(r/d)*(d-1);
        while(x%d==0)x/=d;
    }
    return r;
}
int main()
{
    int n;
    f>>n;
    ciur();
    for(int i=2;i<=n;i++)
    {
        nr+=euler(i)*2;
    }
    g<<nr;

    return 0;
}