Cod sursa(job #2920300)

Utilizator AntovladCioanca Vlad Antoniu Antovlad Data 23 august 2022 15:53:04
Problema Fractii Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");//pregatim citirea din fisier
int prim(int n)
{
    if(n%2==0)
    {
        return 2;
    }
    int p=3;
    int radical=sqrt(n);
    while(n%p!=0&&p<=radical)
    {
        p=p+2;
    }
    if(n%p==0)
    {
        return p;
    }
    return n;
}
int euler(int n)
{
    if(n==1)
    {
        return 1;
    }
    int p=prim(n);
    if(n%(p*p)==0)
    {
        return p*euler(n/p);
    }
    return (p-1)*euler(n/p);
}
long long fractii(int N)
{
    if(N==1)
    {
        return 1;
    }
    else
    {
        return fractii(N-1)+2*euler(N);
    }
}
int main()
{
    int N;//initializam N din enunt
    fin>>N;//citim N din enunt
    fout<<fractii(N);
    return 0;
}