将一个数分解成质因数相乘形式(如435234=251*17*17*3*2)
本文有任务侵害您权益的话,请及时告知,谢谢!任何不妥之处,欢迎指正!再谢!
1.递归法
void prim(int m, int n, bool b = true) {//m 是待分解的数,n 代表m当前最小可能的因子, b 代表是否第一个因子if(m>n) {while(m%n != 0) n++;m /= n;prim(m, n, false);if (!b){printf("%d*", n);}else{printf("%d", n);}}
}
2.非递归法
void prim2(int m)
{int n = 2;bool b = true;while ( m >= n){while ( m%n == 0){if (b){printf("%d", n);b = false;}elseprintf("*%d", n);m /= n;}n++;}
}
int main()
{int n = 435234;printf("%d=", n);prim(n, 2);//prim2(n);return 0;
}
3.质数查表法。以上二种方法中,对于质数,我们是从2开始搜索,每次递
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
