matlab编程求助-求一个正整数的所有质因数
来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/29 07:59:50
matlab编程求助-求一个正整数的所有质因数
要求做一个类似factor的function,找出用户输入整数的所有质因数.例如输入12 则输出 2 2 3
希望有初级一点的解法.
刚学这个不几天 很多东西不懂 现在最多也就用个for while和一般的命令
c=[];
while isempty(b)
b(~mod(b,b(1)))=[];
这几点看不懂
要求做一个类似factor的function,找出用户输入整数的所有质因数.例如输入12 则输出 2 2 3
希望有初级一点的解法.
刚学这个不几天 很多东西不懂 现在最多也就用个for while和一般的命令
c=[];
while isempty(b)
b(~mod(b,b(1)))=[];
这几点看不懂
function c=myfactor(a)
b=2:sqrt(a);
c=[];
while isempty(b)
if mod(a,b(1))
b(~mod(b,b(1)))=[];
continue;
else
c=[c,b(1)];
a=a/b(1);
b(b>sqrt(a))=[];
end
end
c=[c,a];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
这还不初级啊,没用用到任何matlab中自带的关于素数的函数,全部自己找出来,你还想怎么个初级法?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c=[]就是令c为空矩阵,以后会慢慢加进去
isempty是判断矩阵是否为空的命令,是取反,即原来是0的变成1(即T),非0的变成0(即F),while isempty(b)就是当b不空时循环.
mod是取模,
if mod(a,b(1))就是如果a不被b(1)整除
mod(b,b(1))就是如果b中能被b(1)整除就为1,否则为0.(因为前面取了个反)
b(~mod(b,b(1)))=[]的意思就是把b中能被b(1)整除的那些元素都删了.因为那些都不是素数,除了b(1),但b(1)又不被a整除,即不是a的因子,所以也删掉.continue什么意思应该知道的吧
然后如果a能够被b(1)整除的话那么b(1)就是a的素因子了,把它放到矩阵c中
b(b>sqrt(a))=[]的意思也是吧b中大于根号a的元素都删了.
b=2:sqrt(a);
c=[];
while isempty(b)
if mod(a,b(1))
b(~mod(b,b(1)))=[];
continue;
else
c=[c,b(1)];
a=a/b(1);
b(b>sqrt(a))=[];
end
end
c=[c,a];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
这还不初级啊,没用用到任何matlab中自带的关于素数的函数,全部自己找出来,你还想怎么个初级法?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c=[]就是令c为空矩阵,以后会慢慢加进去
isempty是判断矩阵是否为空的命令,是取反,即原来是0的变成1(即T),非0的变成0(即F),while isempty(b)就是当b不空时循环.
mod是取模,
if mod(a,b(1))就是如果a不被b(1)整除
mod(b,b(1))就是如果b中能被b(1)整除就为1,否则为0.(因为前面取了个反)
b(~mod(b,b(1)))=[]的意思就是把b中能被b(1)整除的那些元素都删了.因为那些都不是素数,除了b(1),但b(1)又不被a整除,即不是a的因子,所以也删掉.continue什么意思应该知道的吧
然后如果a能够被b(1)整除的话那么b(1)就是a的素因子了,把它放到矩阵c中
b(b>sqrt(a))=[]的意思也是吧b中大于根号a的元素都删了.
求助matlab编程~
求助matlab编程高手!
编程!一个三位正整数,它的百位数小于十位数,且十位数小于个位数,求所有满足三位正整数的和
Matlab编程求能用几个连续正整数之和表示的整数
用MATLAB编程求连续正整数整数次幂之和
MATLAB编程死循环求助
我们知道,一个正整数的质因数是这样的质数,它大于1并且能整除该数.那么2001的所有质因数之和是______.
我们知道,一个正整数的度质因数是这样的质数,他大于1并且能整除该数.那么,2012的所有质因数之和是几
VB编程题:一个正整数分解成质因数天的剩积,如输入:90打印90=2*3*3*5
matlab编程求出一个矩阵所有由该矩阵几列列向量组成的非零子矩阵
编程题:输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列.
MATLAB求助:如何求一个矩阵的列数