Pagini recente » Cod sursa (job #1041327) | Cod sursa (job #2117226) | Cod sursa (job #1917936) | Cod sursa (job #976047) | Cod sursa (job #51599)
Cod sursa(job #51599)
#include<stdio.h>
#include<math.h>
#define Nmax 1000000
int N;
long long S=0;
int prim[Nmax];
void citire ()
{
FILE *in = fopen ("fractii.in", "rt");
fscanf (in, "%d", &N);
fclose(in);
}
void preproc()
{
for(int i=2;i<=N;i++)
{
if(!prim[i])
{
for(int j=2;j*i<=N;j++)
prim[j*i]=1;
}
}
}
void calcul ()
{
preproc();
for(int i=2;i<=N;i++)
{
int k=N;
{
double p=i;
for(int j=2;j<=i;j++)
if(i%j==0 && !prim[j])
p*=(1-(double)1/j);
k=p;
}
S+=k;
}
S=S*2+1;
}
void afisare ()
{
FILE *out = fopen ("fractii.out", "wt");
fprintf(out, "%lld", S);
fclose(out);
}
int main ()
{
citire();
calcul();
afisare ();
return 0;
}