Pagini recente » Cod sursa (job #2098307) | Cod sursa (job #1053533) | Cod sursa (job #1500265) | Cod sursa (job #677027) | Cod sursa (job #295923)
Cod sursa(job #295923)
#include<fstream.h>
#include<math.h>
#include<values.h>
ifstream f("indep.in");
ofstream g("indep.out");
int min,i,k,a[501],b[501],n,ok,z=0;
void binar (int a[501],int n)
{
min=1;
for (i=n; i>=1; i--)
{
if (a[i]==1 && min==1) a[i]=0;
else if (a[i]==0 && min==1) { a[i]=1; min=0; }
}
}
int numarare(int a[501],int n)
{
k=0;
for (i=1; i<=n; i++)
if (a[i]==1) k++;
return k;
}
void init(int a[501],int n)
{
for (i=1; i<=n; i++)
a[i]=0;
}
int main ()
{
f>>n;
for (i=1; i<=n; i++)
f>>a[i];
init(b,n);
while (numarare(b,n)<n)
{
binar(b,n); min=MAXINT;
for (i=1; i<=n; i++)
if (b[i]==1 && a[i]<min) min=a[i];
while (min!=1)
{
ok=1;
for (i=1; i<=n; i++)
if (b[i]==1 && a[i]%min!=0) ok=0;
if (ok==1) break;
else min--;
}
if (min==1) z++;
}
g<<z;
return 0;
}