您好,登錄后才能下訂單哦!
#include <iostream> using namespace std; void prim(int m,int n){ if(m>=n){ while(m%n) n++; m/=n; prim(m,n); cout<<n<<endl; } } int main(){ int m=10986; prim(m,2); return 0; }
m%n 表示取余,余數為 0 時表示 n 能整除 m
當 n 不能整除 m 時,m%n 不為 0,表達式為真;否則跳出 while
跳出 while 表示找到了 m 的一個因子 n,因此將 m 除以 n,進入遞歸尋找新的因子
由于輸出因子 n 的命令在遞歸之后,因此對重復的因子只會輸出一次
顯然只會輸出素因子
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。