问题描述
设计算法,用户输入合数,程序输出若个素数的乘积。例如,输入6,输出2*3。输入20,输出2*2*5。
样例
与上面的样例输入对应的输出。
例:
数据规模和约定
输入数据中每一个数在int表示范围内。
#include <iostream>
#include <vector>
#include <string>
#include <queue>
using namespace std;
bool isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i*i <=n; i++) {
if (n%i == 0)
return false;
}
return true;
}
int main() {
int n, a[10010] = { 0 }, cnt = 0;
int p = 2;
cin >> n;
while (n > 1) {
if (n%p == 0&&isPrime(p)) {
a[cnt++] = p;
n /= p;
}
else {
p++;
}
}
//cout << cnt;
for (int i = 0; i < cnt; i++) {
cout << a[i];
if (i != cnt - 1)
cout << "*";
}
cout << endl;
cin >> n;
return 0;
}