Pagini recente » Cod sursa (job #108066) | Cod sursa (job #1838808) | Cod sursa (job #582561) | Cod sursa (job #154316) | Cod sursa (job #2087947)
#include <fstream>
using namespace std;
ifstream cin("indep.in");
ofstream cout("indep.out");
const int nmax=500,valmax=1000;
int v[nmax+5];
int dp[nmax+5][valmax+5];
int n;
int cmmdc(int a,int b)
{
if(b==0)
return a;
return cmmdc(b,a%b);
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
dp[1][v[1]]=1;
for(int dr=2;dr<=n;dr++)
{
dp[dr][v[dr]]=1;
for(int i=1;i<=n;i++)
dp[dr][i]=dp[dr-1][i];
for(int value=1;value<=valmax;value++)
{
dp[dr][cmmdc(value,v[dr])]+=dp[dr-1][value];
}
}
cout<<dp[n][1];
return 0;
}
/**
**/