Pagini recente » Cod sursa (job #2085562) | Cod sursa (job #1088145) | Cod sursa (job #2575885) | Cod sursa (job #1364496) | Cod sursa (job #1824102)
#include<fstream>
using namespace std;
ifstream f("indep.in");
ofstream g("indep.out");
int n,v[505],unu[1005],dp[1005][1005];
inline int cmmdc(int a,int b)
{
if(!b)
return a;
return cmmdc(b,a%b);
}
void add(int A[],int B[])
{
int t=0,i;
for(i=1;i<=A[0]||i<=B[0]||t;i++,t/=10000)
A[i]=(t+=A[i]+B[i])%10000;
A[0]=i-1;
}
int main()
{
f>>n;
for(int i=1;i<=n;i++)
f>>v[i];
unu[0]=unu[1]=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<1005;j++)
add(dp[cmmdc(j,v[i])],dp[j]);
add(dp[v[i]],unu);
}
if(!dp[1][dp[1][0]])
g<<0;
else
for(int j=dp[1][0];j;j--)
g<<dp[1][j];
return 0;
}