Cod sursa(job #1657465)

Utilizator SilviuIIon Silviu SilviuI Data 20 martie 2016 15:12:41
Problema Indep Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>

using namespace std;

int n,nr;
int t[510];
long long int dp[510][1010];

inline int gcd(int a,int b)
{
    if (b==0) return a; else
        return gcd(b,a%b);
}

int main()
{
    freopen("indep.in","r",stdin);
    freopen("indep.out","w",stdout);

    scanf("%d",&n);

    for (int i=1;i<=n;i++) scanf("%d",&t[i]);

    for (int i=1;i<=n;i++) {

        for (int j=1;j<=1000;j++) {
            dp[i][j]=dp[i][j]+dp[i-1][j];
            dp[i][gcd(j,t[i])]=dp[i][gcd(j,t[i])]+dp[i-1][j];
        }

        dp[i][t[i]]++;
    }

    printf("%lld",dp[n][1]);

    return 0;
}