题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
#include <bits/stdc++.h> #include <cmath> #include <vector> using namespace std; int main() { int num; cin>>num; int n1=sqrt(num); vector<int> a; for(int i=2;i<=n1;i++) { int flag1=0; for(int j=2;j<i;j++) { if(i%j==0) { flag1=1; break; } else continue; } if(flag1==0) { a.push_back(i); } } /*for(vector<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<' '; } cout<<endl; int flag2=0;*/ for(vector<int>::iterator it=a.begin();it!=a.end();it++) { if(num%*it==0&&num!=*it) { do { num=num/(*it); cout<<*it<<' '; }while (num%*it==0); } } if(num!=1) cout<<num; } // 64 位输出请用 printf("%lld")