Pagini recente » Cod sursa (job #290074) | Cod sursa (job #1754155) | Cod sursa (job #1968518) | Cod sursa (job #272928) | Cod sursa (job #402173)
Cod sursa(job #402173)
#include <fstream>
using namespace std;
ifstream f("indep.in");
ofstream g("indep.out");
#define nmax 505
int n,cm[nmax],sol,pre;
int A[nmax];
bool ok;
long long power(int n,int p)
{
unsigned long long sol=1;
for (int i=0; (1<<i)<=p; i++)
{
if ((1<<i) & p )
sol=(sol*n);
n=(n*n);
}
return sol;
}
void read()
{
f>>n;
for(int i=1;i<=n;i++) f>>A[i];
}
int cmmdc(int a,int b)
{
if(b==0)
return a;
return cmmdc(b,a%b);
}
int main()
{
read();
int i,j;
for(i=n;i>1;i--)
for(j=i-1;j>=1;j--)
if(cmmdc(A[i],A[j])==1)
++cm[i];
for(i=1;i<n;i++)
{
ok=false;
pre=0;
for(j=i+1;j<=n;j++)
{
if(cmmdc(A[i],A[j])==1)
{
ok=true;
sol+=power(2,n-2-cm[i]-pre);
++pre;
}
}
pre+=ok;
}
g<<sol;
}