
function flag=primo(n)

%--------------------------------------------------------------------------
% Oggetto:
%--------------------------------------------------------------------------
% Il proposito di questa routine e' di verificare se il numero "n" sia 
% o meno primo.
%--------------------------------------------------------------------------
% Input:
%--------------------------------------------------------------------------
% n: numero naturale;
%--------------------------------------------------------------------------
% Output:
%--------------------------------------------------------------------------
% flag: 0: numero non primo, 1: numero primo, NaN: il numero non e' 
%       naturale.
%--------------------------------------------------------------------------

% Uscita immediata se il numero e' non naturale.

mu=floor(n);
if not(n-mu == 0)
    fprintf('\n \t Il numero %6.0f non e'' intero',n);
    flag = NaN;
    return;
end

if n < 0
    fprintf('\n \t Il numero %6.0f non e'' naturale',n);
    flag = NaN;
    return;
end


% Verifica se il numero e' primo.

flag=0;
if n > 1
    m=floor(n/2);
    for k=2:m
        s=rem(n,k);
        if s == 0
            return;
        end
    end
    flag=1;
end

