Pagini recente » Cod sursa (job #515761) | Cod sursa (job #3240210) | Cod sursa (job #111717) | Cod sursa (job #498771) | Cod sursa (job #51933)
Cod sursa(job #51933)
#include <stdio.h>
char v[1000005];
int v2[1000005];
void ciur(int n)
{
int i,j;
v[0]=1; v[1]=1;
for (i=2; i<n/2+1; i++)
for (j=2*i; j<=n; j+=i)
v[j]=1;
}
int main()
{
int i,j,n,s=0,k;
long long p;
FILE *in=fopen("fractii.in","r");
fscanf(in,"%d",&n);
fclose(in);
ciur(n);
for (i=2; i<=n; i++)
{
if (!v[i])
{
v2[i]=i-1;
s+=v2[i];
}
else
{
k=i;
p=1;
j=2;
while (k>1)
{
if (!v[j])
if (k%j==0)
{
p*=v2[j];
k/=j;
while (k%j==0)
{
k/=j;
p*=j;
}
}
j++;
}
s+=p;
}
}
s*=2;
s++;
FILE *out=fopen("fractii.out","w");
fprintf(out,"%d\n",s);
fclose(out);
return 0;
}