编写一个程序。对一个正整数进行质因子的分解。例如3080=2^3*5*7*11。
输入:
3080
输出:
2^3*5*7*11。
该编程序题可以分为两部分:
- 质因子分解,确定所有因子。
- 对所有因子计数,根据要求输出。
程序如下:
#author-qun
#include <iostream>
#include<vector>
using namespace std;
void main() {
printf("请输入一个正整数:");
int n;
cin >> n;
vector<int> factor;
int i = 2;
while (i<n)
{
if (n%i == 0) {
factor.push_back(i);
n = n / i;
i = 2;
}
else i++;
}
factor.push_back(n);
vector<int>::iterator it;
int k =1;
for (it = factor.begin(); it != factor.end()-1; it++)
{
if (*it != *(it + 1)) {
cout << *it;
if (k > 1)
cout << "^" << k;
cout << "×";
k = 1;
}
else k++;
}
cout << *it;
if (k > 1)
cout << "^" << k;
cout << endl;
system("pause");
}
结果如下: