首页 > 解决方案 > 递归中的素数除数

问题描述

我需要打印给定数字 n 的所有主要除数。

我试着写了一些代码,发现停止条件是如果 n 是素数或者我们得到了 2。

我很难找到一种方法仍然将元素发送到函数,而不会“丢失”给定的数字 n,如果我需要素数分解很容易,在这种情况下,我将发送到函数 n 除以建立的主要除数以使输入更小

编辑:我知道这相当于找到素数分解

我的代码:

function y=PrimeR(n)
if isprime(n)==1
    y=n

else
for i=floor(sqrt(n)):-1:2
       if mod(n,i)==0
           y=[i,PrimeR(n./i)]
       end
end
end
end

标签: algorithmmatlab

解决方案


推荐阅读