Pagini recente » Cod sursa (job #778535) | Cod sursa (job #2261826) | Cod sursa (job #1092777) | Cod sursa (job #1434460) | Cod sursa (job #2426032)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,s,i,j,np=0,fi=0,aux,auxf;
char *v,*p;
FILE *f,*g;
f=fopen("fractii.in","r");
g=fopen("fractii.out","w");
fscanf(f,"%d",&n);
v=(char*)malloc(n+1);
for(i=2;i<n;i++)
{
v[i]=1;
}
for(i=2;i*i<=n;i++)
{
if(v[i])
{
for(j=i;j<=n/i;j++)
{
v[i*j]=0;
}
}
}
for(i=2;i<=n;i++)
{
if(v[i])
{
np++;
}
}
p=(int*)malloc(np*sizeof(int));
j=0;
for(i=2;i<=n;i++)
{
if(v[i])
{
p[j]=i;
j++;
}
}
free(v);
for(i=2;i<=n;i++)
{
aux=i;
auxf=1;
for(j=0;j<np && p[j]<=i;j++)
{
if(i%p[j]==0)
{
aux=aux*(i-i/p[j]);
auxf=auxf*i;
}
}
aux=aux/auxf;
fi=fi+aux;
}
fi=(fi<<1)+1;
printf("%d",fi);
free(p);
fclose(f);
fclose(g);
return 0;
}