Pagini recente » Cod sursa (job #776886) | Cod sursa (job #2943325) | Cod sursa (job #1211969) | Cod sursa (job #1424960) | Cod sursa (job #114425)
Cod sursa(job #114425)
#include <stdio.h>
#include <string.h>
#define nm 512
#define mm 1024
int cmmdc(int a, int b)
{
if (a == 0)
return b;
return cmmdc(b % a, a);
}
int n, a[nm], last[mm], crt[mm];
int main()
{
freopen("indep.in", "r", stdin);
freopen("indep.out", "w", stdout);
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
scanf("%d", &a[i]);
crt[a[1]] = last[a[1]] = 1;
/*
for (int i = 1; i <= 1000; ++i)
printf("%d ", last[i]);
printf("\n");
*/
for (int i = 2; i <= n; ++i) {
for (int j = 1; j <= 1000; ++j) {
int aux = cmmdc(j, a[i]);
crt[aux] += last[j];
if (crt[aux] > 1000000)
while(1);
}
/*
for (int j = 1; j <= 1000; ++j)
printf("%d ", crt[j]);
printf("\n");
*/
memcpy(last, crt, sizeof(crt));
}
printf("%d\n", crt[1]);
return 0;
}