Pagini recente » Cod sursa (job #2781208) | Cod sursa (job #2533811) | Cod sursa (job #752173) | Cod sursa (job #2763351) | Cod sursa (job #2663819)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("indep.in");
ofstream fout("indep.out");
const int NMAX = 1005;
const int baza = 1000;
int dp[NMAX][105],unu[3],x;
void adun(int a[105],int b[105]){
int i,r=0;
for(i=1;i<=a[0] or i<=b[0] or r>0; i++){
a[i]=a[i]+b[i]+r;
r=a[i]/baza;
a[i]%=baza;
}
a[0]=i-1;
}
int cmmdc(int a,int b)
{
int c;
while(b){
c=a%b;
a=b;
b=c;
}
return a;
}
int main()
{
int n;
fin >> n;
unu[0]=unu[1]=1;
for(int i=1;i<=n;i++){
fin >> x;
for(int j=1;j<=1000;j++) adun(dp[cmmdc(x,j)],dp[j]);
adun(dp[x],unu);
}
for(int i=dp[1][0];i>=1;i--)
fout << dp[1][i];
return 0;
}