Cod sursa(job #2214601)

Utilizator PinkiePie1189Preoteasa Mircea-Costin PinkiePie1189 Data 19 iunie 2018 14:28:19
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
#define MAXN 1000000
FILE*fin,*fout;

void ciur(int N);

int phi[MAXN+2];
bool marked[MAXN+2];
int main()
{
    fin=fopen("fractii.in","r");
    fout=fopen("fractii.out","w");
    int N;
    fscanf(fin,"%d",&N);
    ciur(N);

    //phi[1]=N;
    long long ans=0;
    for(int i=1; i<=N; i++)
    {
        ans+=2*phi[i];
    }
    ans--;
    fprintf(fout,"%lld",ans);
    fclose(fin);
    fclose(fout);
    return 0;
}


void ciur(int N)
{
    for(int i=1; i<=N; i++)
    {
        phi[i]=i;
    }
    for(int i=2; i<=N; i++)
    {
        if(!marked[i])
        {
            for(int j=i; j<=N; j+=i)
            {
                marked[j]=1;
                phi[j]/=i;
                phi[j]*=(i-1);
            }
        }
    }
}