Pagini recente » Cod sursa (job #2594909) | Cod sursa (job #1154238) | Cod sursa (job #1291349) | Cod sursa (job #2387589) | Cod sursa (job #1234963)
#include <stdio.h>
#define VALMAX 1000
#define NRCFMAX 200
int d[VALMAX+1][NRCFMAX];
inline void aduna(int sursa, int unde){
int ad, j;
ad=0;
j=1;
while((j<=d[sursa][0])||(ad!=0)){
ad+=d[sursa][j]+d[unde][j];
d[unde][j]=ad%10;
ad/=10;
j++;
}
if(j-1>d[unde][0]){
d[unde][0]=j-1;
}
}
inline int cmmdc(int a, int b){
int r;
while(b!=0){
r=a%b;
a=b;
b=r;
}
return a;
}
int main(){
int n, i, x, j;
FILE *fin, *fout;
fin=fopen("indep.in", "r");
fout=fopen("indep.out", "w");
fscanf(fin, "%d", &n);
d[0][0]=1;
d[0][1]=1;
for(i=0; i<n; i++){
fscanf(fin, "%d", &x);
for(j=1; j<=VALMAX; j++){
aduna(j, cmmdc(x, j));
}
aduna(0, x);
}
for(i=d[1][0]; i>0; i--){
fprintf(fout, "%d", d[1][i]);
}
fprintf(fout, "\n");
fclose(fin);
fclose(fout);
return 0;
}