Cod sursa(job #507495)
Utilizator | mihai995 mihai995 | Data | 6 decembrie 2010 11:21:43 |
---|---|---|---|
Problema | Indep | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <fstream>
using namespace std;
int v[1<<9],a[1<<9][1<<10],n;
ifstream in("indep.in");
ofstream out("indep.out");
int cmmdc(int a,int b)
{
int c;
while (b)
{
c=a%b;
a=b;
b=c;
}
return a;
}
int main()
{
int i,j;
in>>n;
for (i=1;i<=n;i++)
in>>v[i];
a[1][v[1]]=1;
for (i=2;i<=n;i++)
{
for (j=1;j<1<<10;j++)
a[i][cmmdc(j,v[i])]+=a[i-1][j];
for (j=1;j<1<<10;j++)
a[i][j]+=a[i-1][j];
}
out<<a[n][1]<<'\n';
return 0;
}