Cod sursa(job #1024400)

Utilizator alexsimi66FMI Simandi Alexandru alexsimi66 Data 8 noiembrie 2013 17:53:36
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>
#include <math.h>

using namespace std;
bool c[499993];
int v[79000],u,x;

int euller(int y)
    {
        int i=0;
        int inainte=y;
        while(y!=1)
            {if(y%v[i]==0)
                {inainte=inainte*(v[i]-1)/v[i];
                while(y%v[i]==0)
                    y=y/v[i];
                }
             i++;
            }
        return inainte;
    }

void ciur()
{
    int i,j;
    u=1;
    v[0]=2;

    for(i=3;i<=x;i=i+2)
        if(!c[(i-1)/2])
        {c[(i-1)/2]=true;
        v[u]=i;
        u++;
        for(j=2*i;j<=x;j=j+i)
            if(j%2==1)
                c[(j-1)/2]=true;
        }
}

int main()
{
    int i;
    long cate=0;
    ifstream fin("fractii.in");
    ofstream fout("fractii.out");
    fin>>x;
    ciur();
    for(i=1;i<=x;i++)
        cate=cate+euller(i);
    fout<<cate*2-1;
    return 0;
}