
function [divs,flag]=divisore(n)

%--------------------------------------------------------------------------
% OGGETTO:
%--------------------------------------------------------------------------
% Routine che calcola i divisori del numero naturale positivo "n",
% listandoli nel vettore "divs".
%
% Lo scalare "flag" vale 1 se la procedura e' terminata correttamente, 0
% altrimenti.
%--------------------------------------------------------------------------

flag=1;

if n <= 0 % il numero non e' positivo
    fprintf('il numero scelto non e'' positivo');
    divs=[];
    flag=0;
    return;
end

if not(n-floor(n) == 0) % il numero non e' naturale
    fprintf('il numero scelto non e'' naturale');
    divs=[];
    flag=0;
    return;
end

% calcolo dei divisori
divs=[1];
for k=2:floor(n/2)
    if rem(n,k) == 0
        divs(end+1)=k;
    end
end

if not(n == 1)
    divs(end+1)=n;
end



