题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
#include <iostream> using namespace std; int main() { int i; cin>>i; while(i%2==0) { cout<<2<<" "; i/=2; } int factor = (i-1)/2; for(int j=3;j < (i-1)/2 && i!=1;j+=2) { while(i%j==0) { cout<<j<<" "; i /=j; } } if(i!=1) cout<<i; } // 64 位输出请用 printf("%lld")
其实有一点比较关键,就是2n+1的奇数,它的因子不会大于n