#include <bits/stdc++.h>
using namespace std;
struct modular_arithmetic {
  int mod;
  modular_arithmetic() { mod = 1000000007; }
  int add(int x, int y) { return (x += y) < mod ? x : x - mod; }
  int sub(int x, int y) { return (x -= y) >= 0 ? x : x + mod; }
  int mul(int x, int y) { return (int)((long long int)x * y % mod); }
};
modular_arithmetic ma;
int n;
map<int, int> mp, add;
map<int, int>::iterator it;
void upd(int id) {
  it = mp.find(id - 1);
  if (it != mp.end()) add[id] = ma.add(add[id], (*it).second);
}
int main() {
  scanf("%d", &n);
  mp.clear();
  mp[0] = 1;
  for (int i = 1; i <= n; i++) {
    int x;
    scanf("%d", &x);
    add.clear();
    for (int j = 1; j * j <= x; j++) {
      if (x % j) continue;
      upd(j);
      if (j * j < x) upd(x / j);
    }
    for (it = add.begin(); it != add.end(); it++)
      mp[(*it).first] = ma.add(mp[(*it).first], (*it).second);
  }
  int s = -1;
  for (it = mp.begin(); it != mp.end(); it++) s = ma.add(s, (*it).second);
  printf("%d\n", s);
  return 0;
}
