Cod sursa(job #270393)
| Utilizator | Data | 3 martie 2009 22:39:40 | |
|---|---|---|---|
| Problema | Fractii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.72 kb |
#include <fstream>
#include <math.h>
using namespace std;
int main()
{
char v[1000000];
long var,i,j,n,s,euler;
int f;
ifstream in("fractii.in");
ofstream out("fractii.out");
in>>n;
s=n;
for(i=2;i<=sqrt(n);i++)
j=i*i;
while(j<=n)
{
v[j]='x';
j=j+i;
}
for(i=2;i<=n;i++)
{
var=i;
euler=1;
for(f=0,j=2;j<=n;j++)
if(v[j]=='a')
{
while(var%j==0)
{var/=j;f++;}
euler=euler*(j-1)*pow(j,f-1);
}
s+=euler*n/i;
}
out<<s;
out.close();
in.close();
return 0;
}
