Cod sursa(job #2161847)

Utilizator MagrevIonita Catalin Magrev Data 11 martie 2018 21:17:30
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
long long int euler[1000000],n,s=1;
int cmmdc(long long int a,long long int b)
{
    if(!b)
        return a;
    else return cmmdc(b,a%b);

}
int prim(long long int var)
{
    int nr=0;
    for(int i=2;i<=sqrt(var);i++)
        if(var%i==0)
            nr++;
    if(!nr)
        return 1;
    else return 0;

}
void euler_indicator()
{
    euler[1]=1;
    euler[2]=1;
    int s=1;
    for(int i=2;i<=n;i++)
        if(prim(i))
        {
            s+=2*(i-1);
            for(int j=2;i*j<=n;j++)
                euler[i*j]=0;
        }
        else
        {
            int nr=0;
            for(int j=1;j<i;j++)
                if(cmmdc(i,j)==1)
                    nr++;
             s+=2*nr;
        }
        g<<s;

}
int main()
{
    f>>n;
    euler_indicator();
    return 0;
}