过滤掉我的数组OCTAVE / MATLAB中的非整数

时间:2013-09-05 10:33:31

标签: arrays matlab octave

我有一个代码,用于确定写为:

的素数因子
N=12345678
for i = 2 : N
    q = 0;

    while N/i == floor(N/i)
        N = N/i;
        q = q + 1;
    end

    if q > 0
        fac=i

     if N == 1
            break
        end
    end
end

但是,我希望将我想要的值2,3,47和14593合并为一个矩阵。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

如果看起来您的代码在MATLAB中,您只需执行此操作:

N=12345678
fac = [];
for i = 2 : N
    q = 0;
    while N/i == floor(N/i)
        N = N/i;
        q = q + 1;
    end
    if q > 0
        fac=[fac, i];
        if N == 1
            break
        end
    end
end

答案 1 :(得分:1)

你有意尝试自己做吗?您可以使用Matlab的factor函数,

factor(N)

给出相同的结果。