Pagini recente » Cod sursa (job #680705) | Cod sursa (job #2710620) | Cod sursa (job #2154334) | Cod sursa (job #2384221) | Cod sursa (job #378192)
Cod sursa(job #378192)
#include<stdio.h>
int n,i,j,fractii,count,k,p,sgn[100],prel[100],final,m,l1,l2,gasit,q;
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;k=1;
for(j=0;j<50;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];
fractii=fractii+(n/prel[count])*sgn[count];
count++;
}
final=count;
l1=0;l2=count;
while(k!=count){
k++;
printf("\n%d\n",k);
for(m=l1;m<l2;m++)
for(j=0;j<count;j++)
if(prel[m]%prel[j]!=0){
gasit=0;
for(q=l2-1;q<final;q++)
if(prel[j]*prel[m]==prel[q])
gasit=1;
if(!gasit){
prel[final]=prel[j]*prel[m];
if(k%2==0)
sgn[final]=1;
else
sgn[final]=-1;
fractii=fractii+(n/prel[final])*sgn[final];
final++;
}
}
l1=l2;
l2=final;
}
}
FILE *fout;
fout=fopen("fractii.out","wt");
fprintf(fout,"%d",fractii);
return 0;
}