//...START BY DOING WHAT IS NECESSARY, THEN WHAT IS POSSIBLE AND SUDDENLY YOU ARE DOING THE IMPOSSIBLE...
#include <bits/stdc++.h>
using namespace std;
#define FAST_IO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define pb push_back
typedef long long ll;
#define endl '\n'
#define M 1000000007
bool comp(int x,int y)
{
return x > y;
}
/*..............................code starts here........................*/
int pr(int ele,int p)
{
int count = 0;
while(ele%p == 0)
{
count += 1;
ele = ele/p;
}
return count;
}
ll power(ll no,ll p)
{
if(p == 1)
return no;
if(p == 0)
return 1;
ll q = power(no,p/2);
q = q*q;
if(p % 2 != 0)
q = q*no;
return q;
}
int main() {
FAST_IO;
int n;
cin >> n;
ll arr[n];
for(int i=0;i<n;i++)
cin >> arr[i];
map<int,vector<int> > mp;
//map<position,factors of the prime no>
int prime[25]={2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97};
for(int i=0;i<n;i++)
{
vector<int>vec;
for(int j=0;j<25;j++)
{
if(i == 0)
vec.pb(pr(arr[i],prime[j]));
else
vec.pb(mp[i-1][j]+pr(arr[i],prime[j]));
}
mp[i] = vec;
}
int t;
cin >> t;
while(t--)
{
int l,r,mod;
cin >> l >> r >> mod;
int pro = 1;
//for(int j=l-1;j<r;j++)
//{
for(int i =0;i<25;i++)
{
if(l == 1)
pro = (pro * power(prime[i],mp[r-1][i]))%mod;
else
{
pro = (pro * power(prime[i],mp[r-1][i]-mp[l-2][i]))%mod;
//if(prime[i] == 2 || prime[i] == 3)
//cout << mp[r-1][i] << " " << mp[l-1][i] << endl;
}
}
//count += mp[prime[i],j];
//}
cout << pro%mod << endl;
}
}
//remarks..
/*
1.seive of erasthanos till n=10000
2.lcm
3.power function..dont forget to apply mod if needed
4.int to string and vice-versa
5.checking the prime no
6.pascal triangle implementation
*/
IC8vLi4uU1RBUlQgQlkgRE9JTkcgV0hBVCBJUyBORUNFU1NBUlksIFRIRU4gV0hBVCBJUyBQT1NTSUJMRSBBTkQgU1VEREVOTFkgWU9VIEFSRSBET0lORyBUSEUgSU1QT1NTSUJMRS4uLiAKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgRkFTVF9JTyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiNkZWZpbmUgcGIgcHVzaF9iYWNrCnR5cGVkZWYgbG9uZyBsb25nIGxsOwojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIE0gMTAwMDAwMDAwNwpib29sIGNvbXAoaW50IHgsaW50IHkpCnsKICAgIHJldHVybiB4ID4geTsgICAKfQoKCi8qLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uY29kZSBzdGFydHMgaGVyZS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiovCgppbnQgcHIoaW50IGVsZSxpbnQgcCkKewogICAgaW50IGNvdW50ID0gMDsKICAgIHdoaWxlKGVsZSVwID09IDApCiAgICB7CiAgICAgICAgY291bnQgKz0gMTsKICAgICAgICBlbGUgPSBlbGUvcDsKICAgIH0KICAgIHJldHVybiBjb3VudDsKfQpsbCBwb3dlcihsbCBubyxsbCBwKQp7CiAgICBpZihwID09IDEpCiAgICByZXR1cm4gbm87CiAgICBpZihwID09IDApCiAgICByZXR1cm4gMTsKICAgIGxsIHEgPSBwb3dlcihubyxwLzIpOwogICAgcSA9IHEqcTsKICAgIGlmKHAgJSAyICE9IDApCiAgICBxID0gcSpubzsKICAgIHJldHVybiBxOwp9CmludCBtYWluKCkgewogICAgRkFTVF9JTzsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICBsbCBhcnJbbl07CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgY2luID4+IGFycltpXTsKICAgIG1hcDxpbnQsdmVjdG9yPGludD4gPiBtcDsKICAgIC8vbWFwPHBvc2l0aW9uLGZhY3RvcnMgb2YgdGhlIHByaW1lIG5vPgogICAgaW50IHByaW1lWzI1XT17MiwgMywgNSwgNywgMTEsIDEzLCAxNywgMTksIDIzLCAyOSwgMzEsIDM3LCA0MSwgNDMsIDQ3LCA1MywgNTksIDYxLCA2NywgNzEsIDczLCA3OSwgODMsIDg5LCA5N307CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgewogICAgICAgIHZlY3RvcjxpbnQ+dmVjOwogICAgICAgIGZvcihpbnQgaj0wO2o8MjU7aisrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoaSA9PSAwKQogICAgICAgICAgICB2ZWMucGIocHIoYXJyW2ldLHByaW1lW2pdKSk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgdmVjLnBiKG1wW2ktMV1bal0rcHIoYXJyW2ldLHByaW1lW2pdKSk7CiAgICAgICAgfQogICAgICAgIG1wW2ldID0gdmVjOwogICAgfQoKICAgIGludCB0OwogICAgY2luID4+IHQ7CiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgICAgaW50IGwscixtb2Q7CiAgICAgICAgY2luID4+IGwgPj4gciA+PiBtb2Q7CiAgICAgICAgaW50IHBybyA9IDE7CiAgICAgICAgLy9mb3IoaW50IGo9bC0xO2o8cjtqKyspCiAgICAgICAgLy97CiAgICAgICAgICAgIGZvcihpbnQgaSA9MDtpPDI1O2krKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYobCA9PSAxKQogICAgICAgICAgICAgICAgcHJvID0gKHBybyAqIHBvd2VyKHByaW1lW2ldLG1wW3ItMV1baV0pKSVtb2Q7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcHJvID0gKHBybyAqIHBvd2VyKHByaW1lW2ldLG1wW3ItMV1baV0tbXBbbC0yXVtpXSkpJW1vZDsKICAgICAgICAgICAgICAgICAgICAvL2lmKHByaW1lW2ldID09IDIgfHwgcHJpbWVbaV0gPT0gMykKICAgICAgICAgICAgICAgICAgICAvL2NvdXQgPDwgbXBbci0xXVtpXSA8PCAiICIgPDwgbXBbbC0xXVtpXSA8PCBlbmRsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vY291bnQgKz0gbXBbcHJpbWVbaV0sal07CiAgICAgICAgLy99CiAgICAgICAgY291dCA8PCBwcm8lbW9kIDw8IGVuZGw7CiAgICB9Cn0KCgoKCgoKCgoKLy9yZW1hcmtzLi4KLyoKMS5zZWl2ZSBvZiBlcmFzdGhhbm9zIHRpbGwgbj0xMDAwMAoyLmxjbQozLnBvd2VyIGZ1bmN0aW9uLi5kb250IGZvcmdldCB0byBhcHBseSBtb2QgaWYgbmVlZGVkCjQuaW50IHRvIHN0cmluZyBhbmQgdmljZS12ZXJzYQo1LmNoZWNraW5nIHRoZSBwcmltZSBubwo2LnBhc2NhbCB0cmlhbmdsZSBpbXBsZW1lbnRhdGlvbgoqLwo=