#include

typedef struct {

int numerator;

int denominator;

} Fraction;

int gcd(int a, int b) {

if (b == 0) return a;

return gcd(b, a % b);

}

Fraction add(Fraction f1, Fraction f2) {

Fraction result;

result.numerator = f1.numerator * f2.denominator + f2.numerator * f1.denominator;

result.denominator = f1.denominator * f2.denominator;

return simplify(result);

}

Fraction subtract(Fraction f1, Fraction f2) {

Fraction result;

result.numerator = f1.numerator * f2.denominator - f2.numerator * f1.denominator;

result.denominator = f1.denominator * f2.denominator;

return simplify(result);

}

Fraction multiply(Fraction f1, Fraction f2) {

Fraction result;

result.numerator = f1.numerator * f2.numerator;

result.denominator = f1.denominator * f2.denominator;

return simplify(result);

}

Fraction divide(Fraction f1, Fraction f2) {

Fraction result;

result.numerator = f1.numerator * f2.denominator;

result.denominator = f1.denominator * f2.numerator;

return simplify(result);

}

Fraction simplify(Fraction f) {

int common_divisor = gcd(f.numerator, f.denominator);

f.numerator /= common_divisor;

f.denominator /= common_divisor;

return f;

}

void printFraction(Fraction f) {

printf("%d/%dn", f.numerator, f.denominator);

}

int main() {

Fraction f1 = {3, 4};

Fraction f2 = {2, 5};

Fraction result_add = add(f1, f2);

Fraction result_subtract = subtract(f1, f2);

Fraction result_multiply = multiply(f1, f2);

Fraction result_divide = divide(f1, f2);

printf("Addition: ");

printFraction(result_add);

printf("Subtraction: ");

printFraction(result_subtract);

printf("Multiplication: ");

printFraction(result_multiply);

printf("Division: ");

printFraction(result_divide);

return 0;

}