Pagini recente » Cod sursa (job #282728) | Cod sursa (job #1226413) | Cod sursa (job #2210831) | Cod sursa (job #1153738) | Cod sursa (job #2828494)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 1000000
int ciur[MAXN + 1],prim[100];
int main(){
int n,d,s=0,nr,a,i,j;
FILE *fin, *fout;
fin = fopen("fractii.in","r");
fscanf(fin,"%d",&n);
fclose(fin);
s = n*n;
j = 0;
for(d=2;d<=n;d++){
if(ciur[d] == 0){
for(i=d;i<=n;i+=d)
ciur[i] += n/d;
prim[j] =d;
j++;
} else{
a = d;
i = 0;
nr = 0;
while(a > 1 && nr<=1){
nr = 0;
while(a % prim[i] == 0){
a /= prim[i];
nr ++;
}
i++;
}
if(nr <= 1){
for(i=d;i<=n;i+=d)
ciur[i] --;
}
}
s -= ciur[d];
}
fout = fopen("fractii.out","w");
fprintf(fout,"%d\n",s);
fclose(fout);
return 0;
}