质因数分解
编写一个程序,先读入一个正整数 N,对其做质因数分解。
例如:
90 = 2 * 3 * 3 * 5
【输入形式】
- 输入一个正整数 N(2<=N<=65535)。
【输出形式】
- 分解得到的所有质因数,从小到大排列,以空格分隔,最后一个因数后无空格。
- 如果N本身为质数,则输出N本身。
代码实现:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> p;
void fenjie(int N){
int num=N;
for (int i = 2; i < num / 2; ) {
if (N%i==0&&N!=i){
N=N/i;
p.insert(p.end(),i);
i=2;
continue;
}
i++;
}
p.insert(p.end(),N);
sort(p.begin(),p.end());
}
int main(void){
int N;
cin >> N;
vector<int>::iterator it;
fenjie(N);