Cod sursa(job #3273191)

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

using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int j,Min[1000005];
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 n)
{
    int r=n, d=2;
    while(n>1)
    {
        d=Min[n];
        r=(r/d)*(d-1);
        while(n%d==0)n/=d;
    }
    return r;
}
int main()
{
    int n;
    f>>n; int nr=1;
    ciur();
    for(int i=2;i<=n;i++)
    {
        nr+=euler(i)*2;
    }
    g<<nr;

    return 0;
}