2025年1月3日
牛客网-华为题库-质数因子
C++, 华为题库, 算法
0 Comments
描述
对于给定的整数 n,从小到大依次输出它的全部质因子。即找到这样的质数 p1,p2,⋯ ,pk,使得 n=p1×p2×⋯×pk 。
输入描述:
在一行上输入一个整数 n(2≦n≦2×108+14) 代表待分解的整数。
输出描述:
在一行上从小到大输出若干个整数,代表 n的质因子。
示例1
输入:
180
输出:
2 2 3 3 5
说明:
在这个样例中,180=2×2×3×3×5。
示例2
输入:
47
输出:
47
#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
int main() {
int n;
while (cin >> n) { // 注意 while 处理多个 case
size_t i = 2;
for (; i <= sqrt(n);) {
if (n % i == 0) {
cout << i << " ";
n = n / i;
} else {
i++;
}
}
if (n >= 2) {
cout << n << endl;
}
}
}
// 64 位输出请用 printf("%lld")