Allora Credo che prima di tutto dovresti creare un nuovo vettore nel quale vai a mettere tutti i divisori del tuo numero (seguendo il tuo esempio x=12) per fare ciò occorre un ciclo simile:
k=0;
for(i=x;i>0;i--){
if(x%i==0){
VettoreMultipli[k]=i;
k++;
}
}
una volta fatto questo otteremo tutti i divisori di 12 ossia 12 6 4 3 2 1 in un vettore
adesso non resta che confrontarlo con il vettore assegnato in precedenza [9,8,2] in questo modo
chiamo il vettore dei divisori V2 con lunghezza lung2 e l'altro V1 lung1 e creo un terzo vettore V3
j=0;
for(i=0;i<lung2;i++){
for(k=0;k<lung1;k++){
if(V2[i]%V1[k]==0){
V3[j]=V2[i];
j++
}
}
}
suppongo che così debba funzionare , attenzione che però credo il programma stampi i multipli di un dato numero più volte ad esempio se nel vettore inserito ci sono 4 e 8 e x=16 il vettore finale sarà costituito da [4,8,16,8,16]
io non l'ho provato fammi sapere se ti trovi e se non funziona!