Cod sursa(job #2439694)
| Utilizator | Data | 16 iulie 2019 17:34:33 | |
|---|---|---|---|
| Problema | Fractii | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <cstdio>
int n,p,original,nr,d,nrq;
long long sol;
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%d",&n);
sol=1ll*2*n-1;
for (p=2; p<=n; p++)
{
original=p;
nr=p;
d=2;
nrq=n-1;
while (nr!=1 && d*d<=original)
{
if (nr%d==0)
{
nrq=nrq-(n/d);
while (nr%d==0)
nr=nr/d;
}
d++;
}
if (nr!=1) nrq=nrq-n/nr;
sol=sol+1ll*nrq;
}
printf("%lld\n",sol);
return 0;
}
