Pagini recente » Cod sursa (job #2047663) | Cod sursa (job #2950597) | Cod sursa (job #262974) | Cod sursa (job #754102) | Cod sursa (job #1771401)
#include <fstream>
using namespace std;
ifstream fin("indep.in");
ofstream fout("indep.out");
const int MAXN = 510;
const int MAXNR = 1005;
int N;
int a[MAXN];
int D[MAXNR];
int maxim;
void Read();
void Solve();
int Cmmdc( int a, int b );
int main()
{
Read();
Solve();
fout << D[1] << '\n';
fin.close();
fout.close();
return 0;
}
void Read()
{
int i;
fin >> N;
for ( i = 1; i <= N; i++ )
{
fin >> a[i];
maxim = max(maxim, a[i]);
}
}
void Solve()
{
int i, j;
for ( i = 1; i <= N; i++ )
{
for ( j = 1; j <= maxim; j++ )
if ( D[j] > 0 )
D[Cmmdc(j, a[i])] += D[j];
D[a[i]]++;
}
}
int Cmmdc( int a, int b )
{
int rest;
do
{
rest = a % b;
a = b;
b = rest;
} while ( rest != 0 );
return a;
}