using
System;
class
GFG
{
static
int
gcd(
int
a,
int
b)
{
if
(a % b == 0)
return
b;
else
return
(gcd(b, a % b));
}
static
int
findHcf(
int
[,]arr,
int
size)
{
int
ans = arr[0, 0];
for
(
int
i = 1; i < size; i++)
ans = gcd(ans, arr[i, 0]);
return
(ans);
}
static
int
findLcm(
int
[,] arr,
int
size)
{
int
ans = arr[0,1];
for
(
int
i = 1; i < size; i++)
ans = (((arr[i, 1] * ans)) /
(gcd(arr[i, 1], ans)));
return
(ans);
}
static
int
[] hcfOfFraction(
int
[,] arr,
int
size)
{
int
hcf_of_num = findHcf(arr, size);
int
lcm_of_deno = findLcm(arr, size);
int
[] result =
new
int
[2];
result[0] = hcf_of_num;
result[1] = lcm_of_deno;
for
(
int
i = result[0] / 2; i > 1; i--)
{
if
((result[1] % i == 0) && (result[0] % i == 0))
{
result[1] /= i;
result[0] /= i;
}
}
return
(result);
}
public
static
void
Main(String[] args)
{
int
size = 4;
int
[,] arr =
new
int
[size, size];
arr[0, 0] = 9;
arr[0, 1] = 10;
arr[1, 0] = 12;
arr[1, 1] = 25;
arr[2, 0] = 18;
arr[2, 1] = 35;
arr[3, 0] = 21;
arr[3, 1] = 40;
int
[] result = hcfOfFraction(arr, size);
Console.WriteLine(result[0] +
", "
+ result[1]);
}
}