分解质因数
#include<iostream>usingnamespacestd;voidprim(intm,intn){if(m>=n){while(m%n)n++;m/=n;prim(m,n);cout<<n<<endl;}}intmain(){intm=10986;prim(m,2);return0;}
m%n 表示取余,余数为 0 时表示 n 能整除 m
当 n 不能整除 m 时,m%n 不为 0,表达式为真;否则跳出 while
跳出 while 表示找到了 m 的一个因子 n,因此将 m 除以 n,进入递归寻找新的因子
由于输出因子 n 的命令在递归之后,因此对重复的因子只会输出一次
显然只会输出素因子
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。