Cod sursa(job #1053577)
Utilizator | dinu paul pauldinu | Data | 12 decembrie 2013 20:30:32 |
---|---|---|---|
Problema | Indep | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <fstream>
using namespace std;
ifstream f("indep.in");
ofstream g("indep.out");
int n,v[501],d[501][1001];
int cmmdc(int a, int b)
{
if(b==0) return a;
return cmmdc(b, a % b);
}
void rezolva()
{
int i,j;
//for(i=1;i<=n;i++)
d[1][v[1]]=1;
for(i=2;i<=n;i++)
{
for(j=1;j<=1000;j++)
d[i][cmmdc(j,v[i])]+=d[i-1][j];
for(j=1;j<=1000;j++)
d[i][j] += d[i-1][j];
}
}
int main()
{
int i;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
rezolva();
g<<d[n][1];
return 0;
}