Cod sursa(job #2161766)

Utilizator MagrevIonita Catalin Magrev Data 11 martie 2018 20:43:00
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int euler[101],n,s=1;
int cmmdc(int a,int b)
{
    if(!b)
        return a;
            else if(a==1 || b==1)
                return 1;
    else cmmdc(b,a%b);

}
int prim(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;
    for(int i=3;i<=n;i++)
        if(prim(i))
        {
            euler[i]=i-1;
            for(int j=2;i*j<=n;i++)
                euler[i*j]=0;
        }

    for(int i=1;i<=n;i++)
        if(!(euler[i]))
        {
            int nr=0;
            for(int j=1;j<i;j++)
                if(cmmdc(euler[i],euler[j])==1)
                    nr++;
          euler[i]=nr;
        }

        int s=1;
        for(int i=2;i<=n;i++)
            s+=2*euler[i];
        g<<s;
}
int main()
{
    f>>n;
    euler_indicator();
    return 0;
}