Pagini recente » Cod sursa (job #3228521) | Cod sursa (job #3205721) | Cod sursa (job #1938633) | Cod sursa (job #3272003) | Cod sursa (job #3293185)
#include <fstream>
#include <vector>
#define int long long
using namespace std;
ifstream fin("indep.in");
ofstream fout("indep.out");
int n, i, a[505], dp[1005], sum[505][1005], j, mobius[1005], ans, maxim, ciur[1005];
signed main()
{
fin>>n;
for(i=1; i<=n; i++)
{
fin>>a[i];
for(j=1; j*j<a[i]; j++)
if(a[i]%j==0)
dp[j]++, dp[a[i]/j]++;
if(j*j==a[i])
dp[j]++;
}
for(i=2; i<=1000; i++)
{
int d=2, c=i, nr=0, nrt=0;
bool ok=true;
while(c>1)
{
if(c%d==0)
{
nr=0;
nrt++;
while(c%d==0)
{
nr++;
c/=d;
}
if(nr>1)
{
ok=false;
break;
}
}
d++;
if(d*d>c)
d=c;
}
if(ok==true)
{
if(nrt%2==1)
ans+=((1<<dp[i])-1);
else
if(nrt)
ans-=((1<<dp[i])-1);
}
}
fout<<(1<<n)-ans-1;
return 0;
}