
function valore=somma_divisori(n)

%--------------------------------------------------------------------------
% Oggetto
%--------------------------------------------------------------------------
% Questo codice, dato un numero naturale n, calcola la somma dei suoi 
% divisori strettamente inferiori a n.
%--------------------------------------------------------------------------
% Input: 
%--------------------------------------------------------------------------
% n: numero naturale, 
%--------------------------------------------------------------------------
% Output:
%--------------------------------------------------------------------------
% valore: somma dei divisori di "n" inferiori di n.
%--------------------------------------------------------------------------


valore=[];

% A. uscita qualore il numero non sia naturale positivo.
if n <= 0, flag=NaN; return; end
if not(n-floor(n) == 0), flag=NaN; return; end

% B. determinazione dei divisori di "n" minori di "n"
divisori=[];
L=0;
for k=1:n-1
    val=rem(n,k);
    if val == 0
        L=L+1; 
        divisori(L)=k;
    end
end

% C. somma dei divisori di "n" minori di "n"
valore=sum(divisori);