#include<iostream> #include<vector> #include<sstream> using namespace std; vector<int> initTable(int max){ vector<int> v; for(int i=2; i<=max; i++){ int flag = 1; for(int j=2; j<=i/2; j++){ if(i % j == 0){ flag = 0; break; } } if(flag == 1) v.push_back(i); } return v; } int isPrime(int x){ if(x == 2 || x == 3) return 1; for(int i=2; i<=x/2; i++){ if(x%i == 0) return 0; } return 1; } int main(){ int n; cin >> n; int x = n; if(isPrime(x) == 1){ cout << x << "=" << x << endl; return 1; } ostringstream iss; vector<int> v = initTable(n/2); for(int i=0; i<v.size();){ if(n%v[i] == 0){ iss << v[i] << "*"; n /= v[i]; }else{ i++; } } string s = iss.str(); cout << x << "=" << s.substr(0,s.size()-1) << endl; } |
Double click to view unformatted code.