1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 5 // print all prime factor 6 void print(int n) 7 { 8 // 将n除成奇数 9 while(n%2==0) 10 { 11 cout<<2<<" "; 12 n=n/2; 13 } 14 15 //唯一的偶素数2,因为n是个奇数,所以i+=2 16 for(int i=3;i<sqrt(n);i+=2) 17 { 18 while(n%i==0) 19 { 20 cout<<i<<" "; 21 n=n/i; 22 } 23 } 24 25 // if(n==1) 26 // return; 27 // else 28 // cout<<n<<" "; 29 30 //最后,如果n>2则是一个素数,或者是n=1 31 if(n>2) 32 cout<<n<<endl; 33 34 } 35 36 37 int main() 38 { 39 int n; 40 cin>>n; 41 print(n); 42 return 0; 43 }
参考链接:https://www.geeksforgeeks.org/print-all-prime-factors-of-a-given-number/