Pagini recente » Cod sursa (job #1781881) | Cod sursa (job #542022) | Cod sursa (job #1535333) | Cod sursa (job #2108696) | Cod sursa (job #248255)
Cod sursa(job #248255)
#include <fstream>
using namespace std;
long int **c,**d;
long int cmmdc(long int a, long int b)
{ long int aux=0;
if(a==b) return a;
while (a!=b && aux!=1)
if (a<b) { aux=b-a;
b=b-a;
}
else { aux=a-b;
a=a-b;
}
return aux;
}
int find(long int val1,long int val2,long int i, long int j)
{ int ret=0;
long int ii,jj;
for(ii=0;ii<i;ii++)
for(jj=0;jj<j;jj++)
if(val1==c[ii][jj] && val2==d[ii][jj])
return 1;
return 0;
}
void reducere(long int **a, long int **b, long int n)
{
int aux,i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{ aux=cmmdc(a[i][j],b[i][j]);
c[i][j]=a[i][j]/aux;
d[i][j]=b[i][j]/aux;
}
}
int main(void)
{
long int **a,**b,n,i,j;
long int count=0,sum;
ifstream datein("fractii.in");
ofstream dateout("fractii.out");
datein>>n;
a=(long int**)malloc(n*sizeof(long int*));
b=(long int**)malloc(n*sizeof(long int*));
c=(long int**)malloc(n*sizeof(long int*));
d=(long int**)malloc(n*sizeof(long int*));
for(i=0;i<n;i++)
{
a[i]=(long int*)malloc(n*sizeof(long int));
b[i]=(long int*)malloc(n*sizeof(long int));
c[i]=(long int*)malloc(n*sizeof(long int));
d[i]=(long int*)malloc(n*sizeof(long int));
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{a[i][j]=i+1;
b[i][j]=j+1;
}
reducere(a,b,n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(find(c[i][j],d[i][j],i,j)==0) count++;
/*for(i=0;i<n;i++)
{for(j=0;j<m;j++)
dateout<<a[i][j]<<" ";
dateout<<endl;
}*/
dateout<<count;
datein.close();
dateout.close();
return 0;
}