func_code_string: #include <bits/stdc++.h>   using namespace std;   long long GCD(long long x, long long y) {     if (y == 0) return x;     return GCD(y, x % y);   }   long long LCM(long long x, long long y) { return (x * y) / (GCD(x, y)); }   long long LOGK(long long x, long long k) {     if (x >= k) return 1 + LOGK(x / k, k);     return 0;   }   long long MPOW(long long a, long long b, long long m) {     if (b == 0) return 1;     long long x = MPOW(a, b / 2, m);     x = (x * x) % m;     if (b % 2 == 1) x = (x * a) % m;     return x;   }   int main() {     long long test = 1;     while (test--) {       long long n;       cin >> n;       long long ar[n + 1];       long long dp[n + 1];       dp[0] = 1;       for (long long i = 1; i <= n; i++) dp[i] = 0;       long long ans = 0;       for (long long i = 1; i <= n; i++) {         cin >> ar[i];         vector<long long> g;         for (long long j = 1; j <= (long long)(sqrt(ar[i])); j++) {           if (ar[i] % j == 0) {             g.push_back(j);             if (ar[i] / j != j) {               g.push_back(ar[i] / j);             }           }         }         sort(g.begin(), g.end());         reverse(g.begin(), g.end());         for (auto it : g) {           if (it <= n) {             dp[it] += dp[it - 1];             dp[it] %= 1000000007;           }         }       }       for (long long i = 1; i <= n; i++) {         ans += dp[i];         ans %= 1000000007;       }       cout << ans;     }   }   