#include <iostream>
#include <vector>
using namespace std;
typedef long long int llf;
vector<int> p;
llf gcd(llf a,llf b){
	while(a!=b){
		if(max(a,b)%min(a,b)==0)
		return min(a,b);
		if(a>b)
		a-=b;
		else
		b-=a;
	}
	return a;
}
llf gcd(llf c[10],int n){
	llf d[10];
	for(int i=0;i<n;i++)
	d[i]=c[i];
	llf x=d[0];
	for(int i=1;i<n;i++)
	x=gcd(x,d[i]);
	return x;
}
llf lcm(llf c[10],int n){
	int d[10];
	for(int i=0;i<10;i++)
	d[i]=c[i];
	int times[10000]={};
	for(int i=0;i<n;i++){
		for(int j=0;j<p.size();j++){
			int k=0;
			while(d[i]%p[j]==0){
				d[i]/=p[j];
				k++;
			}
			times[p[j]]=max(times[p[j]],k);
		}
	}
	llf ans=1;
	for(int i=0;i<p.size();i++)
		for(int j=0;j<times[p[i]];j++)
			ans*=p[i];
	return ans;
}
int main() {
	// your code goes here
	p.push_back(2);
	for(int i=3;i<=10000;i++){
		for(int j=0;j<p.size();j++){
			if(i%p[j]==0)
			break;
			if(j==p.size()-1)
			p.push_back(i);
		}
	}
	int n;
	while(cin >> n && n!=0){
		llf d[10],v[10];
		for(int i=0;i<n;i++)
		cin >> d[i] >> v[i];
		llf times=lcm(d,n);
		for(int i=0;i<n;i++)
		v[i]*=(times/d[i]);
		llf c=gcd(v,n);
		for(int i=0;i<n;i++)
		cout << v[i]/c << endl;
	}
	return 0;
}