Pagini recente » Cod sursa (job #1392415) | Cod sursa (job #1063227) | Cod sursa (job #1560650) | Cod sursa (job #1860747) | Cod sursa (job #744172)
Cod sursa(job #744172)
#include<iostream>
#include<cstdio>
#include<math.h>
using namespace std;
long int n,dim,fractii;
long int a[10000001];
long int nrprime[100001];
int coef(int div, int nr)
{
int aux=1;
nr=nr/div;
while(nr%div==0)
{ aux++; nr=nr/div; }
return aux;
}
long int euler(long int nr)
{
int prim=1;
long int i,j;
long int sum=1;
for(i=1; i<dim; i++)
{
if(nr%nrprime[i]==0) {
long int aux=nrprime[i];
sum=sum*(aux-1)*pow(aux,coef(aux,nr)-1);
}
}
return sum;
}
int main(void)
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w", stdout);
cin>>n;
long int i,k;
dim=1;
for(i=2; i<=n; i++)
{
if(a[i]==0) {
a[i]=1;
nrprime[dim]=i;
for(k=i; k<=n; k+=i)a[k]=1;
dim++;
}
}
long int j;
for(j=n; j>=2; j--)
{
fractii+=euler(j);
}
cout<<2*fractii+1;
return 0;
}