Pagini recente » Cod sursa (job #2276220) | Cod sursa (job #276456) | Cod sursa (job #3247603) | Cod sursa (job #2506323) | Cod sursa (job #51975)
Cod sursa(job #51975)
#include <stdio.h>
char v[100005];
void ciur(int n)
{
int i,j;
v[0]=1;
v[1]=1;
for(i=2; i*i<=n; i++)
for (j=i+i; j<=n; j+=i)
v[j]=1;
}
int euler(int k)
{
if (!v[k])
return k-1;
else
{
int i=2;
while (k%i!=0 || v[i]!=0)
i++;
if (k % (i*i))
return (i-1)*euler(k/i);
else
return i*euler(k/i);
}
}
int main()
{
int n,s=0,i;
FILE *in=fopen("fractii.in","r");
fscanf(in,"%d",&n);
fclose(in);
ciur(n);
for (i=2; i<=n; i++)
s+=euler(i);
s*=2;
s++;
FILE *out=fopen("fractii.out","w");
fprintf(out,"%d\n",s);
fclose(out);
return 0;
}