#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using i64 = int64_t; using i32 = int32_t; int gcd(int x, int y) { while (x % y != 0) { x %= y; swap(x, y); } return y; } int main() { int n; cin >> n; int a[50]; for (int i = 0; i < n; ++i) { cin >> a[i]; } map mp; for (int i = 0; i < n; ++i) { auto mp_new = mp; for (auto [x, c] : mp) { mp_new[gcd(x, a[i])] += c; } mp_new[a[i]]++; mp = mp_new; } cout << mp[1] << endl; return 0; }