Pagini recente » Cod sursa (job #2195801) | Cod sursa (job #3334859) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #473908)
Cod sursa(job #473908)
#include <iostream.h>
#include<fstream.h>
ifstream f("fractii.in");
ofstream g("fractii.out");
int t,nr;
unsigned long a[1000000],i,j;
long double b[1000000];
void getfactor(long n)
{t=1;
for (int i = 2; i <= n; i++)
{
if (n % i == 0)
{
getfactor(n/i);
{b[t]=i;t++;}
break;
}
}
}
int phi(long n)
{int x=n,i;
float y,z;
getfactor(n);i=1;
while(i<=t)
{if(b[i-1]!=b[i]&&b[i]!=0)
{y=float(1/b[i]);
z=float(1-y);
x=(x*z)+0.5;}
i++;
}
for(i=1;i<=t;i++)b[i]=0;
return x;
}
int main(int argc, char* argv[])
{
f >> n;
for(j=2;j<=n;j++)
a[j]=phi(j);
for(i=1;i<=n;i++)
nr+=a[i];
g<<2*nr+1;
return 0;
}