Pagini recente » Cod sursa (job #2152572) | Cod sursa (job #1870461) | Cod sursa (job #1047622) | Cod sursa (job #1622356) | Cod sursa (job #378178)
Cod sursa(job #378178)
#include<stdio.h>
int n,i,j,fractii,count,k,p,sgn[100],prel[100],final,m;
int main(){
int prim[100];
prim[0]=2;
prim[1]=3;
prim[2]=5;
prim[3]=7;
prim[4]=11;
prim[5]=13;
prim[6]=17;
prim[7]=19;
prim[8]=23;
prim[9]=29;
FILE *fin;
fin=fopen("fractii.in","rt");
fscanf(fin,"%d",&n);
fractii=n*n;
for(i=2;i<=n;i++){
count=0;
for(j=0;j<100;j++)
{
sgn[j]=0;prel[j]=0;
}
for(j=0;j<10;j++)
if(i%prim[j]==0){
sgn[count]=-1;
prel[count]=prim[j];
count++;
}
final=count;
if(count>=2){
for(j=0;j<count;j++)
for(k=j+1;k<count;k++){
prel[final]=prel[j]*prel[k];
sgn[count]=1;
final++;
}
}
if(count>=3){
for(j=0;j<count;j++)
for(k=j+1;k<count;k++)
for(m=k+1;m<count;m++){
prel[final]=prel[j]*prel[k]*prel[m];
sgn[count]=-1;
final++;
}
}
if(count==4){
prel[final]=prel[0]*prel[1]*prel[2]*prel[3];
sgn[count]=1;
final++;
}
for(j=0;j<final;j++)
fractii=fractii+(n/prel[j])*sgn[j];
}
FILE *fout;
fout=fopen("fractii.out","wt");
fprintf(fout,"%d",fractii);
return 0;
}