Cod sursa(job #2981915)
| Utilizator | Data | 19 februarie 2023 00:49:28 | |
|---|---|---|---|
| Problema | Fractii | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.6 kb |
#include<iostream>
#include<fstream>
#include<cmath>
#include<algorithm>
#define ull unsigned long long int
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int totient(int n)
{
int f=2, p;
float t=(float)n;
while(n>1)
{
p=0;
while(n%f==0)
p++, n/=f;
if(p)
t*=(float)(1-1.0/f);
f++;
if(n>1&&f*f>n)f=n;
}
return (int)t;
}
ull numara(int x)
{
ull q=1;
for(int i=2;i<=x;++i)
q+=2*totient(i);
return q;
}
int main()
{
int x;cin>>x;
cout<<numara(x)<<'\n';
return 0;
}
