Cod sursa(job #2114547)

Utilizator andreinichitaTirziu Nichita andreinichita Data 25 ianuarie 2018 17:19:34
Problema Fractii Scor 80
Compilator cpp Status done
Runda ichb_10 Marime 0.65 kb
#include <cstdio>
using namespace std;
int phi[1000006], prime[1000006];
void sievephi(int n)
{
    int i,j;

    for(i=1; i<=n; i++) phi[i]=i;

    phi[1]=1;
    prime[1]=1;

    for(i=2; i<=n; i++)
    {
        if(!prime[i])
        {
            for(j=i; j<=n; j+=i)
            {
                prime[j+i]=1;
                phi[j]=(phi[j]/i)*(i-1);
            }
        }
    }
}
int main()
{
  freopen("fractii.in","r",stdin);
  freopen("fractii.out","w",stdout);
    int i,n;
    long long sum=0;
    scanf("%d",&n);
    sievephi(n);
    for(i=2; i<=n; i++)
        sum+=2*phi[i];
    printf("%lld",sum+1);
    return 0;
}