Pagini recente » Cod sursa (job #1960517) | Cod sursa (job #2641432) | Cod sursa (job #1007681) | Cod sursa (job #1555997) | Cod sursa (job #83795)
Cod sursa(job #83795)
# include <stdio.h>
# include <stdlib.h>
# define MAX 1000
int saved[MAX][MAX];
int N,result=1;
int cmmdc(int,int);
int main (){
FILE *in=fopen("fractii.in","r");
fscanf(in,"%d",&N);
fclose(in);
int i,j;
for (i=0;i<MAX;i++)
for (j=0;j<MAX;j++)
saved[i][j]=0;
int p;
for (i=2;i<=N;i++)
for (j=1;j<i;j++){
p=cmmdc(i,j);
if(i<1000&j<1000)
saved[i][j]=p;
if(p==1)
result+=2;
}
;
FILE *out=fopen("fractii.out","w");
fprintf(out,"%d",result);
fclose(out);
return 0;
}
int cmmdc ( int a,int b){
if(a<1000&&b<1000)
if(saved[a][b])
return saved[a][b];
if(a==0)
return b;
if(b==0)
return a;
if(a>b)
return cmmdc(a-b,b);
return cmmdc(b-a,a);
}