很多完美的是什么时候?
答:当一个正整数的因子的总和,除了本身数量等于数量。这是一个与更多的信息参考从维基百科。
内容
找到所有的因数
你可能会认为所有我们需要做的是找到所有的主要因素,然后我们可以测试这些与数字本身的总和。MATLAB文件寻找主要因素收益率的函数因素。
帮助因素
因素主要因素。因素(N)返回一个向量,其中包含的主要因素N这个函数使用简单的筛的方法。它可能需要大内存分配如果数量太大了。技术可以提高该算法,大多数情况下分配更少的内存,导致更快的执行时间。然而,它仍然会有问题在最坏的情况下,我们选择一个上界强加于输入数量和错误为n > 2 ^ 32。类支持输入N金宝app:浮动:双,单也看到质数,ISPRIME。重载的方法:对称/因素参考页面在浏览器帮助医生的因素
看看数字6是一个完全数(有因数1、2和3)。
n = 6;流式细胞仪=因素(n);perfectOrNot =(流式细胞仪)= = n
perfectOrNot = 0
真的吗?但6是一个完美的号码!什么错了吗?首先让我们看看流式细胞仪。
流式细胞仪
流式细胞仪3 = 2
1号不是一个主要因素,但是是一个除数,需要包括在计算中。我们可以将它添加到因数或减去它n。
因数=[1因素(n)] perfectOrNot =(因子)= = n
因数= 1 2 3 perfectOrNot = 1
尝试更多的数量
现在我们让一个函数来做比较。
perfectOrNot = @ (n)和([1因素(n)]) = = n;
看看其他一些数字。17岁的第一个我最喜欢的。
n = 17;perfectOrNot (n)
ans = 0
接下来,另一个已知的完全数,28。
n = 28;perfectOrNot (n)
ans = 0
现在有什么问题吗?
让我们再次跟踪的步骤。
因数=[1因素(n)] sum28 =总和(因子)
因数= 1 2 2 7 sum28 = 12
实际上,这些不都是28的因数。+ 2号是重复的。我们需要添加所有的组合产品的主要因素,删除处理的产品,其中省略所有的产下载188bet金宝搏品数量(本身)。28日,这意味着包括2 * 2和2 * 7。
moreDivs = (2 * 2 2 * 7)
moreDivs = 4 14
把主要因素与组合,介绍,和删除处理。
perfect28 =总和(独特([因数moreDivs])) = = n;
算法获得所有的因数
我们接下来需要一个算法来计算所有独特的因数n。如果你不想让自己的算法,你可以检查文件交换条目列表因数,而多项式。你会发现至少有一个候选函数。
或者你可以转向符号数学工具箱其中包括一些数论的库函数——一个可能的地方为我们寻找一些帮助。MuPAD一侧的工具箱中,我们可以利用MuPAD函数numlib:因子()。因为目前没有这个函数的MATLAB版本可用,我使用一个函数从MuPAD引擎。为此,我供应库的函数名称,并输入。
symDivs =双(函数宏指令(symengine“numlib:因子”n))
symDivs = 1 2 4 7 14 28
自因数函数返回n我们需要忽略它总和计算。
sum (symDivs (1: end-1)) = = n
ans = 1
所以,28是完美的。
引用和链接
这里有一些从MATLAB新闻组和指针链接到一些相关的贡献在文件交换。
你有一些有趣的和数论在MATLAB ?
我想听你的调查使用MATLAB数论。告诉我关于他们的在这里。
- 类别:
- 有趣的
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。