Cod sursa(job #378205)

Utilizator LauraTudorTudor Laura LauraTudor Data 27 decembrie 2009 22:19:50
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.29 kb
/*#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;
}*/
#include<stdio.h>
int n,i,j,count,v[1000];
int ireductibile(int i,int j){
	int k,min;
    min=j;
    if(i<j)
        min=i;
    for(k=0;k<1000&&v[k]<=min;k++)
        if((i%v[k]==0)&&(j%v[k]==0))
            return 0;
	return 1;
}
int main(){
	FILE *fin;
	fin=fopen("fractii.in","rt");
	v[0]=2;v[1]=3;v[2]=5;v[3]=7;
	v[4]=11;v[5]=13;v[6]=17;v[7]=19;
	v[8]=23;v[9]=29;v[10]=31;v[11]=37;
	v[12]=41;v[13]=43;v[14]=47;v[15]=53;
	v[16]=59;v[17]=61;v[18]=67;v[19]=71;
	v[20]=73;v[21]=79;v[22]=83;v[23]=89;
	v[24]=97;v[25]=101;v[26]=103;v[27]=107;
	v[28]=109;v[29]=113;v[30]=127;v[31]=131;
	v[32]=137;v[33]=139;v[34]=149;v[35]=151;
	v[36]=157;v[37]=163;v[38]=167;v[39]=173;
	v[40]=179;v[41]=181;v[42]=191;v[43]=193;
	v[44]=197;v[45]=199;v[46]=211;v[47]=223;
	v[48]=227;v[49]=229;v[50]=233;v[51]=239;
	v[52]=241;v[53]=251;v[54]=257;v[55]=263;
	v[56]=269;v[57]=271;v[58]=277;v[59]=281;
	v[60]=283;v[61]=293;v[62]=307;v[63]=311;
	fscanf(fin,"%d",&n);
	for(i=2;i<=n;i++)
		for(j=2;j<=n;j++)
			if(i!=j)
			if(ireductibile(i,j))
				count++;
	FILE *fout;
	fout=fopen("fractii.out","wt");
	fprintf(fout,"%d",count+n+n-1);
	return 0;
}