Pagini recente » Cod sursa (job #1874947) | Cod sursa (job #1695996) | Cod sursa (job #150202) | Cod sursa (job #1196496) | Cod sursa (job #2608634)
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream fin("indep.in");
ofstream fout("indep.out");
const int nmax=505;
const int vMax=1005;
int n;
int v[nmax],dp[nmax][vMax];
int count_(int idx,int nr)
{
if(idx==n+1)
{
if(nr==1)return 1;
else return 0;
}
if(dp[idx][nr]!=-1)
return dp[idx][nr];
int ans=count_(idx+1,nr)+count_(idx+1,__gcd(nr,v[idx]));
return dp[idx][nr]=ans;
}
void solve()
{
memset(dp,-1,sizeof(dp));
int ans=0;
for(int i=1;i<=n;i++)
ans+=count_(i+1,v[i]);
fout<<ans;
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
solve();
return 0;
}