当前位置:   article > 正文

正整数分解质因数(思路+代码详解)_将一个大于2的正整数分解为质因数的乘积

将一个大于2的正整数分解为质因数的乘积

题目描述

将一个大于2的正整数分解为质因数的乘积。

输入

一个大于2的正整数。

输出

正整数=质因数*...*质因数

样例输入

90

样例输出

90=2*3*3*5

 思路分析:一个合数总是可以有几个质数相乘得到,用循环从2开始一个一个遍历它的因子,

当得到一个因子(n%i==0时)后用n/=i的到新的n用while循环继续判断i是不是更新后n的因子,这样做是为了确保的得到的是质因子并且能够保证不漏掉因子,如果不用while循环而用if则更新i的值很繁琐,操作不当就会漏掉因子,,例如:180=4*3*3*5,当i=2时180%i==0,更新n=180/2,n==90,90%2==0,这样合数4就变成了2*2.

代码如下:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int n;
  6. cin>>n;
  7. cout<<n<<'=';
  8. for(int i=2;i<=n;i++)
  9. {
  10. while(n%i==0)//思路分析中的while就是指这里
  11. {
  12. n/=i;
  13. cout<<i;
  14. if(n!=1)//n==1时也就是i==n时即最后一个因子,不用在输出'*'
  15. cout<<'*';
  16. }
  17. }
  18. return 0;
  19. }

加油!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/446937
推荐阅读
相关标签
  

闽ICP备14008679号