import std.stdio;
import std.string;
import std.conv;
import std.typecons;
import std.algorithm;
import std.functional;
import std.bigint;
import std.numeric;
import std.array;
import std.math;
import std.range;
import std.container;
import std.ascii;
void times(alias pred)(int n) {
    foreach(i; 0..n) pred();
}
auto rep(alias pred, T = typeof(pred()))(int n) {
    T[] res = new T[n];
    foreach(ref e; res) e = pred();
    return res;
}

void main() {
    int N = readln.chomp.to!int;
    long a1 = 1;
    long a2 = 1;
    N.times!({
        long b1, b2;
        readf("%d %d\n", &b1, &b2);
        a1 = max(a1, b1);
        a2 = max(a2, b2);
        while(true) {
            if (a1*b2 < b1*a2) {
                if (a2 * b1 % b2 == 0) {
                    a1 = a2 * b1 / b2;
                } else {
                    a2++;
                }
            } else {
                if (a1 * b2 % b1 == 0) {
                    a2 = a1 * b2 / b1;
                    break;
                } else {
                    a1++;
                }
            }
        }
    });
    writeln(a1+a2);
}
