Pagini recente » Profil Robybrasov | Monitorul de evaluare | Cod sursa (job #1848832) | Istoria paginii utilizator/ovidiuandrus | Cod sursa (job #779997)
Cod sursa(job #779997)
#include<stdio.h>
FILE *f = fopen("indep.in","r");
FILE *g = fopen("indep.out","w");
#define MaxN 510
#define MaxP 3
#define MaxNrMari 2000
#define MaxA 1010
#define ll long long
int N;
int A[MaxN];
ll Best[MaxA];//[MaxNrMari];
void citire(void)
{
fscanf(f,"%d\n",&N);
for(int i=1;i<=N;i++)
fscanf(f,"%d ",&A[i]);
}
inline int cmmdc(int a,int b)
{
if(!b)
return a;
return cmmdc(b,a%b);
}
void Afisare(int Best[],int N)
{
for(int i=1;i<=N;i++)
printf("%d ",Best[i]);
printf("\n");
}
void Rezolvare(void)
{
for(int i=1;i<=N;i++)
{
for(int j=1;j<=1000;j++)
Best[cmmdc(j,A[i])] += Best[j];
Best[A[i]] ++;
//Afisare(Best,10);
}
}
int main()
{
citire();
Rezolvare();
fprintf(g,"%lld\n",Best[1]);
}