题解 | 质数因子
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
#include <iostream> #include<bits/stdc++.h> using namespace std; using ll=long long; int main() { ll n;cin>>n; if(n==1){cout<<1;return 0;} for(int i=2;i*i<=n;i++) { while(n%i==0){ cout<<i<<" "; n/=i; } }if(n!=1) cout<<n; } // 64 位输出请用 printf("%lld")
//数据稍微有点大,我们的范围就是i*i<=n,循环的时间就大大减少了。然后考虑尾巴,会留下来一个数,
//如果结尾是1就不输出,然后开头单独考虑一下1