首页 > 编程知识 正文

递归分解质因数,递归分解因数

时间:2023-05-03 10:42:03 阅读:270151 作者:1965

【递归】分解质因子

【问题描述】输入一个正整数n,用递归方法从小到大输出它的所有质因子(因子是质数)

【输入形式】一行,一个正整数n,2<=n<=10000

【输出形式】一行,若干个正整数,两数之间用一个空格隔开,从小到大输出

【样例输入】

18
【样例输出】

2 3 3

代码如下: #include"iostream"#include"iomanip"#include"cmath"using namespace std;bool judge_prinme(int n)//判断质数{if (n <= 3){return n > 1;//如果n<3,只可能是1.2.3,2.3为质数,1既不是质数也不是合数.}if (n % 6 != 1 && n % 6 != 5)return false;int t = static_cast<int>(sqrt(n)) + 1;for (int i = 5; i < t; i += 6){if (n % i == 0){return false;}}return true;}void decomp_prinme(int& n)//分解整数{if (n != 1){for (int i = 2; i <= n; i++){if (n % i == 0){n = n / i;cout << i << " ";decomp_prinme(n);}}}elsereturn ;}int main(){int n;cin >> n;if (judge_prinme(n))cout << n << endl;else decomp_prinme(n);return 0;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。