Cod sursa(job #2913073)
Utilizator | Data | 12 iulie 2022 16:36:51 | |
---|---|---|---|
Problema | Fractii | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.7 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int euler(int N)
{
if(N==1)
{
return 1;
}
else
{
int p=2;
while(N%p!=0)
{
p++;
}
int a=0;
int put=1;
while(N%p==0)
{
a++;
put=put*p;
N=N/p;
}
return (put/p)*(p-1)*euler(N/put);
}
}
int fractii(int N)
{
if(N==1)
{
return 1;
}
if(N>1)
{
return fractii(N-1)+2*euler(N);
}
}
int main()
{
int N;
fin>>N;
fout<<fractii(N);
return 0;
}