% MCDP : Massimo comun divisore primo di due numeri. function p = mcdp(a, b) % Ritorna il massimo primo che divide a e b oppure 1 se a e b non hanno % divisori interi non banali. if a <= 0 | b <= 0 disp ('i valori di ingresso devono essere positivi') end % Il problema si riduce al calcolo del massimo fattore primo del massimo % comun divisore. Usiamo l'algoritmo d'euclide per il calcolo di MCD(a,b). while b ~= 0 r = mod(a,b); a = b; b = r; end % Adesso "a" contiene il massimo comun divisore. p = 1; % Valore di default per p. V = eratostene(a); % Vettore dei primi <= a. for q=V if mod(a,q)==0 % Un nuovo divisore primo (piu' grande) e' stato trovato. p=q; end end