Pagini recente » Cod sursa (job #216945) | Cod sursa (job #603706) | Anamaria | Diferente pentru concursuri intre reviziile 88 si 87 | Cod sursa (job #402166)
Cod sursa(job #402166)
#include <fstream>
using namespace std;
ifstream f("indep.in");
ofstream g("indep.out");
#define nmax 505
int n,cm,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=1;i<n;i++)
{
cm=0;
ok=false;
for(j=i+1;j<=n;j++)
{
if(cmmdc(A[i],A[j])==1)
{
ok=true;
sol+=power(2,n-2-cm-pre);
++cm;
}
}
pre+=ok;
}
g<<sol;
}