题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
#include <cmath>
#include <iostream>
#include <vector>
using namespace std;
int func(int num){
for(int i=2;i<sqrt(num)+1;i++){
if(num%i==0){
return 0;
}
}
if(num==1){
return 0;
}
return 1;
}
int main() {
int a;
while (cin >> a) { // 注意 while 处理多个 case
vector<int> b;
int prime=2;
if(func(a)){
b.push_back(a);
}
while (prime <= sqrt(a)){
if(a%prime==0){
a /= prime;
b.push_back(prime);
if (func(a)){
b.push_back(a);
}
}else{
prime+=1;
}
}
// int prime=2, aa=a;
// while (prime <= sqrt(a)){
// if( a % prime){
// prime=prime+1;
// }else{
// a = a / prime;
// b.push_back(prime);
// }
// }
// if (func(aa)){
// b.push_back(aa);
// }
// for(int it:b){
// while (aa%it==0){
// aa/=it;
// }
// if (func(aa)){
// b.push_back(aa);\img\logo2.png
// }
// }
for(auto it:b){
cout<<it<<' ';
}
cout<<endl;
}
}
// 64 位输出请用 printf("%lld")
查看11道真题和解析