华为机试-质数因子
2017-09-07 19:34
435 查看
#include<iostream> #include<string> #include<math.h> using namespace std; int numberCount(int nNumber, int& nCount) { nCount ++; nNumber = nNumber/10; if(nNumber != 0) { nNumber = numberCount(nNumber, nCount); } return 0; } string getResult(long ulDataInput) { string endResult; char *pResult = new char[ulDataInput]; for(int i = 0; i<ulDataInput; i++) { *(pResult + i) = '\0'; } int nCount = 0; for(int index = 2; index <= ulDataInput;) { if((ulDataInput % index) == 0) { ulDataInput = ulDataInput / index; sprintf((pResult + nCount), "%d ", index); int nIndex = 1; numberCount(index, nIndex); nCount = nCount + nIndex; continue; } else { index++; } } endResult = pResult; delete[] pResult; return endResult; } int main() { long ulInputData; cin>>ulInputData; string szResult; szResult = getResult(ulInputData); cout<<szResult; return 0; }