Pagini recente » Cod sursa (job #2162532) | Cod sursa (job #425797) | Cod sursa (job #599242) | Cod sursa (job #963686) | Cod sursa (job #3259032)
#include <fstream>
#include <vector>
#define int long long
using namespace std;
ifstream cin("indep.in");
ofstream cout("indep.out");
int n, maxi = -1;
vector <int> v;
int gcd(int a, int b)
{
while (b != 0)
{
int temp = b;
b = a % b;
a = temp;
}
return a;
}
int32_t main()
{
cin >> n;
v.resize(n+1);
for(int i=1; i<=n; i++)
{
cin >> v[i];
maxi = max(maxi, v[i]);
}
int dp[n+1][1001] = {0};
for(int i=1; i<=n; i++)
{
dp[i][v[i]]++;
for(int j=1; j<=maxi; j++)
{
dp[i][j] += dp[i-1][j];
dp[i][gcd(j, v[i])] += dp[i-1][j];
}
}
cout << dp[n][1];
return 0;
}