分解质因数

简介: 分解质因数

题目描述:

分解质因数听起来既熟悉又陌生,从小学就了解过概念并使用过,但用代码如何实现不得不思考一下。下面重温下什么是质数和合数,质数又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。合数指自然数中除了能被1和本身整除外,还能被其他数(0除外)整除的数。



核心思想:从最小质数开始作为除数(质数满足小于被除数),寻找可以被目标数整除的质数并输出,同时保留商作为下一次运算被除数。


#include <iostream>
using namespace std;
int main ()
{
  int n,i=2;
  cin>>n;
  cout<<n<<"=";
  do {
    while(n%i==0) {
      cout<<i;
      n=n/i;
      if(n!=1) cout<<"*";
    }
    i++;
  }
  while(n!=1);
    return 0;
}
相关文章
|
5月前
|
Java C++
筛法求质数
筛法求质数
48 0
|
11月前
|
C++
筛质数、分解质因数和快速幂的应用
筛质数、分解质因数和快速幂的应用
59 0
|
12天前
将一个正整数分解质因数
将一个正整数分解质因数。
30 8
|
11天前
|
移动开发 算法
求其最大公约数和最小公倍数
求其最大公约数和最小公倍数。
42 5
|
5月前
55.输入两个正整数m和n,求其最大公约数和最小公倍数
55.输入两个正整数m和n,求其最大公约数和最小公倍数
36 0
|
5月前
|
人工智能 Java C++
分解质因数
分解质因数
42 1
|
10月前
分解质因数答疑
为什么n % i == 0就是质数 因为在枚举到i之前已经把n中2到i-1的质因子除干净了,此时n中不含2到i-1的质因子,由于n为i的倍数,所以i中也不包含2到i-1的质因子。如果i可以整除前面的i - 1中的数那么i = x * (i - 1),n = x2 * (x * (i - 1)); 矛盾了 为什么只需要枚举到根号N
71 2
|
11月前
|
人工智能 算法 程序员
求两个正整数的最小公倍数
求两个正整数的最小公倍数
104 1
【每周一坑】​正整数分解质因数 +【解答】计算100以内质数之和
关于分解质因数:每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,把一个合数用质因数相乘的形式表示出来,叫做分解质因数。分解质因数只针对合数。