Cod sursa(job #2913102)
Utilizator | Data | 12 iulie 2022 18:26:43 | |
---|---|---|---|
Problema | Fractii | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <iostream>
using namespace std;
int euler(int N)
{
if(N==1)
{
return 1;
}
else
{
int p=2;
while(N%p!=0)
{
p++;
}
int a=0;
int put=1;
int m=N;
while(m%p==0)
{
a++;
put=put*p;
m=m/p;
}
return (put/p)*(p-1)*euler(N/put);
}
}
int main()
{
int N;
cin>>N;
int fractii=1;
if(N==1)
{
cout<<1;
}
else
{
for(int i=2;i<=N;i++)
{
fractii=fractii+2*euler(i);
}
}
cout<<fractii;
return 0;
}