Pagini recente » Cod sursa (job #2010054) | Cod sursa (job #854766) | Monitorul de evaluare | Statistici Matei Rogoz (uagamaga) | Cod sursa (job #346937)
Cod sursa(job #346937)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int x[1000000];
long long r=1;
int totent(long n)
{
int i;
long m;
double t;
//eratostene
memset(x,0,1000000);
i=2;
while (i<=sqrt(n))
{
m=2;
while(m*i<=n)
{
x[m*i]=1;
m++;
}
i++;
while(x[i]==1)
i++;
}
//end eratostene
//suma eulerphi
for (i=2;i<=n;i++)
{
if (x[i]==0)
r+=2*(i-1);
else
{
t=i;
for (m=2;m<i;m++)
if (x[m]==0&&i%m==0)
{
t=t*(1.0-(1.0/m));
}
r+=2*(long long)t;
}
}
//end suma eulerphi
return 0;
}
int main()
{
FILE *f;
int i;
long n;
f=fopen("fractii.in","r");
fscanf(f,"%ld",&n);
fclose(f);
totent(n);
f=fopen("fractii.out","w");
fprintf(f,"%lld",r);
fclose(f);
return 0;
}