For this Question: Tom has been given an integer array A of size N. Now, he needs to find the number of increasing sub-sequences of this array with length ≥1 and GCD=1. A sub-sequence of an array is obtained by deleting some (or none) elements and maintaining the relative order of the rest of the elements. As the answer may be large, print it Modulo (10^9)+7.The first line contains a single integer N denoting the size of array A. The next line contains N space-separated integers denoting the elements of array A.

Constraints:
1 ≤ N ≤ 500
1 ≤ A[i] ≤ 100Print the required answer Modulo 10^9+7.Sample Input
3
1 2 3

Sample Output
5, I have written this Solution Code: #include<bits/stdc++.h>
using namespace std;
#define ll           long long
#define rep(i,j,n)   for(ll i=j;i<n;i++)
#define scn(a)       scanf("%lld",&a)
#define nl         printf("\n")
#define scns(a,b)    scanf("%lld %lld",&a,&b)
#define print(a)     printf("%lld",a)
#define tc           ll t; scn(t); while(t--)
#define vec          vector<ll>
#define pb           push_back
#define pairs        pair<ll,ll>
#define f            first
#define s            second
#define all(v)       v.begin(),v.end()
#define srt(v)       sort(v.rbegin(),v.rend())
#define mem(a,b)     memset(a,b,sizeof(a))
#define inf          LLONG_MAX
#define zer          LLONG_MIN
#define mp           make_pair
#define maxx         200005
 
const int MOD = 1e9+7;
const int MAXN = 502;
 
ll dp[MAXN][MAXN];
int a[MAXN];
int main() 
{
	int n; scanf("%d", &n);
 
	for(int i=1;i<=n;i++) 
    scanf("%d",&a[i]);
 
	for(int i=1;i<=n;i++) 
    {
		dp[i][a[i]]=1;
		for(int j=i-1;j>=1;j--) 
        {
			if(a[j]<a[i]) 
            {
				for(int k=1;k<=100;k++) 
                {
					int g=__gcd(k,a[i]);
					dp[i][g]=(dp[i][g]%MOD + dp[j][k]%MOD)%MOD;
				}
			}
		}
	}
	ll ans=0;
	for(int i=1;i<=n;i++) 
    ans=(ans%MOD + dp[i][1]%MOD)%MOD;
		
	cout<<ans<<endl;
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?