质因数分解
思路
小学五年级数学:质因数分解(唯一分解定理)。由质数相乘所构成的合数,分解出来的质数是唯一的。
找到能分解 n n n 的最小质数 d d d,则 n d \frac nd dn 则为最大的质数
复杂度
时间复杂度: O ( n ) O(\sqrt n) O(n),因为 d ≤ n d d \leq \frac n d d≤dn,所以 d ≤ n d \leq {\sqrt n} d≤n, d d d 最多只需要枚举 n \sqrt n n 次
空间复杂度: O ( 1 ) O(1) O(1)
代码
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int d = 2;
while (n % d != 0) {
d++;
}
cout << n / d << endl;
return 0;
}