质数分解matlab程序

clear all
% dispStr = '';
n=input('pelase input the number:');                     %保存输入的值
m=2;                                                                %从最小的质数2开始
nstr = num2str(n);
dispStr = strcat(nstr, '=');

while(1)
      if(~mod(n,m))                                              %找到可以整除的数
              k=m;
              if(n==k)                                               %找到最后一个质数
                    nstr = num2str(n);
                    dispStr = strcat(dispStr, nstr);
                    break;                                            %跳出循环
              else
                    n=n/k;                                           %将n除以质数的值继续循环
                    m=1;                                             %保证质数还是从2开始
                    nstr = num2str(k);                              %将分解的质数保存          
                    dispStr = strcat(dispStr, nstr, '*');
              end
      end
      m=m+1;                                  
end

disp(dispStr); %显示分解结果

 

>> primeAnalysis
pelase input the number:231
231=3*7*11

 

备注,以上程序是在网上查到的哪位“大师”写的程序的基础上修改而成(不记得来源了),大家相互学习一同探讨,一同分享。 

你可能感兴趣的:(matlab,程序人生,算法)