质因数matlab函数

1视图(30天)
Daabir Momin
Daabir Momin 2023年4月2日
回答: Dyuman Joshi 2023年4月3日
函数(z1) = pfact (Z)
如果Z > = 2
p = 2: Z;
q = mod (Z, p);
一个=找到(q = = 0);
z1 = p (a)
elseifZ = = 1
z1 = 1
elseifZ = = 0
z1 = []
disp (“错误”)
结束
我想只有主要因素但这段代码给我所有的因素,我需要的主要因素,当他们把彼此给原始号码。
3评论
Daabir Momin
Daabir Momin 2023年4月2日
函数(z1) = pfact (Z)
如果Z > = 2
p = 2: Z;
q = mod (Z, p);
一个=找到(q = = 0);
z1 = p (a)
elseifZ = = 1
z1 = 1
elseifZ = = 0
z1 = []
disp (“错误”)
结束
pfact (20)
这给了我所有的因素,有人能帮我操作这个代码所以它给只一起的主要因素,当正片叠底它给你原来的号码。
20应该给的输出(2、2、5)

登录置评。

答案(1)

Dyuman Joshi
Dyuman Joshi 2023年4月3日
你写的代码给Z的因数。
这应该工作得很好,除非你在处理非常大的数字
着干活= pfact (20)
着干活= 1×3
2 2 5
out2 = pfact (prod(质数(15)))
out2 = 1×6
2 3 5 7 11 13
函数(z1) = pfact (Z)
如果Z > = 2
p =质数(sqrt (Z));
z1 = [];
Z > 1
d = p (rem (Z, p) = = 0);
如果isempty (d)
z1 = (z1 Z);打破
结束
z1 = (z1 d);
Z = Z /刺激(d);
结束
z1 = (z1)进行排序;
elseifZ = = 1
z1 = 1;
elseifZ = = 0
z1 = [];
disp (“错误”)
结束
结束

类别

找到更多的在循环和条件语句帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!