from math import sqrt
n = int(input())
a = []
for _ in range(n):
v = [int(x) for x in input().split()]
a.append(v)
a1 = a[0][1]*a[0][2]//a[1][2]
a1 = int(sqrt(a1))
for i in range(n):
if i == 0:
print(a1, end=' ')
else:
print(a[0][i]//a1, end=' ')
#include <bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define endl "\n"
#define pb push_back
#define int long long
#define mod 1000000007
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define fill(a,b) memset(a,b,sizeof(a))
void solve()
{
int n;
cin>>n;
int arr[n][n];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)cin>>arr[i][j];
vector<int>vect(n,1);
int a1a2=arr[0][1];
int a1a3=arr[0][2];
int a2a3=arr[1][2];
int a1=sqrt((a1a2*a1a3)/a2a3);
vect[0]=a1;
cout<<vect[0]<<" ";
for(int i=1;i<n;i++)
{
cout<<arr[0][i]/a1<<" ";
}
cout<<endl;
}
int32_t main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int T=1;
//cin>>T;
while(T--)
solve();
return 0;
}
144. Binary Tree Preorder Traversal | 137. Single Number II |
130. Surrounded Regions | 129. Sum Root to Leaf Numbers |
120. Triangle | 102. Binary Tree Level Order Traversal |
96. Unique Binary Search Trees | 75. Sort Colors |
74. Search a 2D Matrix | 71. Simplify Path |
62. Unique Paths | 50. Pow(x, n) |
43. Multiply Strings | 34. Find First and Last Position of Element in Sorted Array |
33. Search in Rotated Sorted Array | 17. Letter Combinations of a Phone Number |
5. Longest Palindromic Substring | 3. Longest Substring Without Repeating Characters |
1312. Minimum Insertion Steps to Make a String Palindrome | 1092. Shortest Common Supersequence |
1044. Longest Duplicate Substring | 1032. Stream of Characters |
987. Vertical Order Traversal of a Binary Tree | 952. Largest Component Size by Common Factor |
212. Word Search II | 174. Dungeon Game |
127. Word Ladder | 123. Best Time to Buy and Sell Stock III |
85. Maximal Rectangle | 84. Largest Rectangle in Histogram |