Pagini recente » Cod sursa (job #1474617) | Cod sursa (job #1122734) | Cod sursa (job #1614734) | Cod sursa (job #1794154) | Cod sursa (job #1382130)
#include<stdio.h>
int main(){
unsigned int i,j,M;
FILE *in,*out;
in = fopen("fractii.in","r");
out = fopen("fractii.out","w+");
if(!fscanf(in, "%d\n", &M)) return 1;
printf("DBG: %d\n",M);
unsigned long long count = 1ull;//i=1,j=1
int phi[M];
for (i = 1; i <= M; ++i)
phi[i] = i-1;
for (i = 2; i <= M; ++i)
for (j = 2*i; j <= M; j += i)
{
phi[j] -= phi[i];
//if (phi[j]<0)
//printf("%d ",i);
}
//for (i=1;i<=M;i++) phi[i]=i;
//
//for (i=2;i<=M;i++)
// if (phi[i]==i)
// for (j=i;j<=M;j+=i) phi[j] /=i, phi[j] *= (i-1);
for (i=1;i<=M;i++){
count += 2*phi[i];
//trys = phi[i];
// for (j=1;j<=i && trys>0;j++)
// if (i==1 || j==1)
// count+=2;
// else
// if (cmmdc(i,j)==1){
// count+=2;
// trys--;
// //printf("%d %d\n",i,j);
// }
}
fprintf(out,"%llu",count);
fclose(in);
fclose(out);
printf("%llu", count);
getchar();
return 0;
}