Cod sursa(job #2379314)

Utilizator mihai002016Zaharia Teodor Mihai mihai002016 Data 13 martie 2019 12:37:09
Problema Fractii Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
long long int n,i,s,d,p,j,v[1005],prime[1005],l,x;
int main()
{
    fin>>n;
    v[1]=0;
    for(i=2; i<=1000; i++)
        if(v[i]==0)
        {
            prime[++l]=i;
            for(j=i+i; j<=1000; j=j+i)
                v[j]=1;
        }
    s=1;
    for(i=2; i<=n; i++)
    {
        p=i;
        x=i;
        for(j=1;j<=l;j++)
        if(prime[j]*prime[j]<=x)
        {
            if(x%prime[j]==0)
            p=(p*(prime[j]-1))/prime[j];
            while(x%prime[j]==0)
                x=x/prime[j];
        }
        else
        break;
        if(x>1)
            p=(p*(x-1))/x;
        s=s+p*2;
    }
    fout<<s;
}