Cod sursa(job #2603027)

Utilizator raduraraduIacob Radu raduraradu Data 18 aprilie 2020 14:03:51
Problema Fractii Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int N,nrp;
bool ciur[1000001];
int p[80000];
void ciuruiala(int n)
{
    int i,j;
    for(i=2;i<=n;i++)
        if(!ciur[i])for(j=2;i*j<=n;j++)ciur[i*j]=1;
    for(i=2;i<=n;i++)
        if(!ciur[i])p[++nrp]=i;
}
int phi(int n)
{
    int f=n;
    for(int i=1;p[i]<=n&&i<=nrp;i++)if(n%p[i]==0)f=(f*(p[i]-1))/p[i];
    return f;
}
int main()
{
    f>>N;
    ciuruiala(N);
    int s=0;
    for(int i=1;i<=N;i++)
        s+=phi(i);
    s=s*2-1;
    g<<s;
    return 0;
}