Pagini recente » Cod sursa (job #1023200) | Cod sursa (job #968595) | Cod sursa (job #882203) | Cod sursa (job #865713) | Cod sursa (job #494980)
Cod sursa(job #494980)
/*
pt fiecare pas;
nr solutii += 2^(n-i) - 2^(n-i-x)
x = nr de nr prime cu nr de la pasul curent;
*/
#include <cstdio>
const int N = 501;
int v[N],n;
void citire()
{
scanf("%i",&n);
for (int i = 1; i <= n; ++i)
scanf("%i",&v[i]);
}
int cmmdc(int a, int b)
{
int aux;
while (b != 0)
{
aux = a%b;
a = b;
b = aux;
}
return a;
}
int calc_x(int i)
{
int x=0;
for (int j = i+1; j <= n; ++j)
if (cmmdc(v[i],v[j]) == 1)
++x;
return x;
}
void calculare()
{
long long rez=0,x;
for (int i = 1; i <= n; ++i)
{
x = calc_x(i);
rez += (1<<(n-i)) - (1<<(n-i-x));
if (v[i] == 1)
++rez;
}
printf("%i",rez);
}
int main()
{
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
citire();
calculare();
return 0;
}