Cod sursa(job #752295)

Utilizator DumitracheIulianDumitrache Iulian DumitracheIulian Data 28 mai 2012 12:34:02
Problema Indep Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream in ("indep.in");
ofstream out("indep.out");
int const N=505;
int const M=1005;
int v[N],d[N][M];
int n;

void citire ()
{
    in>>n;
    for(int i=1;i<=n;i++)
        in>>v[i];
}
int cmmdc (int x, int y)
{
    int a=x, b=y, r;
    while(b)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
void complet ()
{
    d[0][0]=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=0;j<=1000;j++)
        {
            int c=cmmdc(j,v[i]);
            d[i][c]+=d[i-1][j];
        }
        for(int j=0;j<=1000;j++)
            d[i][j]+=d[i-1][j];
    }
}
void afis ()
{
    out<<"\n\n\n";
    for(int i=0;i<=10;i++)
    {
        for(int j=0;j<=5;j++)
            out<<d[i][j]<<" ";
        out<<"\n";
    }
}
int main()
{
    citire();
    complet();
    out<<d[n][1]<<"\n";
    //afis();
    return 0;
}