Pagini recente » Cod sursa (job #1199696) | Cod sursa (job #1399851) | Cod sursa (job #1467264) | Cod sursa (job #1722873) | Cod sursa (job #166156)
Cod sursa(job #166156)
#include <fstream>
using namespace std;
int euler(int n)
{
int p=n;
int d=2,expo=0;
while(n%d==0)
expo++,n/=d;
if(expo>0)
{
p/=d;
p*=(d-1);
}
d=3;
while(n>1)
{
expo=0;
while(n%d==0)
expo++,n/=d;
if(expo>0)
{
p/=d;
p*=(d-1);
}
d+=2;
if(d*d>n && n>1)
{
p/=n;
p*=(n-1);
n=1;
}
}
return p;
}
int main()
{
int n,k,i,j;
long long nr=1;
ifstream fin("fractii.in");
fin>>n;
fin.close();
for(i=2;i<=n;i++)
{
nr+=2*euler(i);
}
ofstream fout("fractii.out");
// fout<<euler(6)<<" ";
fout<<nr;
fout.close();
return 0;
}