声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3884|回复: 2

[共享资源] 求一个正整数的因子以及质因数程序

[复制链接]
发表于 2007-3-30 22:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
求一个正整数的所有因子和质因数的小程序,献丑了:)

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));

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2007-3-31 00:02 | 显示全部楼层
原帖由 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 编辑 ]
发表于 2007-3-31 07:55 | 显示全部楼层
虽然eight说的对,但还是要鼓励一下自己动手编程.
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-16 03:58 , Processed in 0.071551 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表