ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 网络编程 >> C/C++教程 >> matlab:将一个正整数分解质因数。

matlab:将一个正整数分解质因数。

来源:网络整理     时间:2014-11-23     关键词:matlab,正整数分解质因数

本篇文章主要介绍了"matlab:将一个正整数分解质因数。",主要涉及到matlab,正整数分解质因数方面的内容,对于C/C++教程感兴趣的同学可以参考一下:

MATLAB? 是一种用于数值计算、可视化及编程的高级语言和交互式环境。使用 MATLAB,可以分 析数据,开发算法,创建模型和应用程序。借助其语言、工具和内置数学函数,您可以探求多种方法,比电子表格或传统编程语言(如 C/C++ 或 Java?)更快地求取结果。

下面说说使用matlab如何将一个正整数分解质因数。

程序思路:

对n进行分解质因数,应先找到一个最小的质数k,从2开始,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n不等于k,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行 (1)。 

 

Matlab实现的程序如下:

clear all

n=input('pelase input the number:')                     %保存输入的值

m=2;                                                                %从最小的质数2开始
display([num2str(n),'='])

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

      m=m+1;                                  %不用担心m是不是质数,因为能被4或6等整除的,肯定能被2或3这些小的质数整除
end

 

也可以从另外一个角度写这个程序:

(1)判断这个数n本身是不是质数,如果是,则直接打印出来;

(2)如果这个数n不是质数,则找到它最小的质数k,并用n=n/k进行更新,重复(1)过程,直到满足最后的n是个质数。

 

本程序存在的问题是:输出不在同一行,如

pelase input the number:77
77=
7*
11

pelase input the number:11
11=
11

 

欢迎大家提出意见

 

以上就介绍了matlab:将一个正整数分解质因数。,包括了matlab,正整数分解质因数方面的内容,希望对C/C++教程有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_93566.html

相关图片

相关文章