题目描述:
分解质因数听起来既熟悉又陌生,从小学就了解过概念并使用过,但用代码如何实现不得不思考一下。下面重温下什么是质数和合数,质数又称素数,有无限个。质数定义为在大于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; }