用matlab编程计算1000以内的完全数,请问这个程序错在哪里?会跑出来无

用matlab编程计算1000以内的完全数,请问这个程序错在哪里?会跑出来无数个s=0.
完全数定义:若某数等于其所有因子之和(不含这个数本身),则称这个数为完全数,例如6=1+2+3,所以6是完全数。

 for x = 2:1000
    s = 0;    % 加个分号就不会显示结果了
    for i = 1:x/2
        if mod(x,i) == 0
            s = s+i;
        end
    end
    if s == x
        fprintf('%d is a perfect number.\n',x); % \n 加个回车好看
    end
end

6 is a perfect number.

28 is a perfect number.

496 is a perfect number.

温馨提示:答案为网友推荐,仅供参考
相似回答