求一个正整数的因子以及质因数程序
求一个正整数的所有因子和质因数的小程序,献丑了:)function factorsfun(t)
%调用形式:factorsfun(t),t为一正整数.
%Author:LIQING 2007-1-14
k=1;
for i=1:t
if t/i-round(t/i)==0
a(k)=i;k=k+1;
end
end
disp('factors:');
disp(num2str(a));
b=a;
for h=length(a):-1:2
for l=(h-1):-1:2
if a(h)/a(l)-round(a(h)/a(l))==0
b(h)=0;
end
end
end
b(find(b==0):length(a))=[];
disp('the smallest prime factors:');
disp(num2str(b)); 原帖由 amygod 于 2007-3-30 22:26 发表
求一个正整数的所有因子和质因数的小程序,献丑了:)
function factorsfun(t)
%调用形式:factorsfun(t),t为一正整数.
%Author:LIQING 2007-1-14
k=1;
for i=1:t
if t/i-round(t/i)==0
a(k)=i;k=k+1;
...
赞一个!不过有以下建议:
求正整数的所有因子时,循环条件只需要做到 t/2,这样可以节省一半时间。另外,条件判断中,可以使用 rem 函数
求质因子时,直接使用matlab的factor函数就可以了
[ 本帖最后由 eight 于 2007-3-31 12:53 编辑 ] 虽然eight说的对,但还是要鼓励一下自己动手编程.
页:
[1]