今天加羣遇到了這個問題,百度有在線分解質因數的計算器,附上網址。http://www.atool.org/quality_factor.php?
但是,一個ACMer要會利用百度,而不是依賴百度,這種簡單的代碼,自己也可以輕鬆搞定。
#include <iostream> #include <math.h> using namespace std; int main() { //不需要分解質因數 1組數據直接暴力跑就行了 打表也簡單 long long c=462377900; int cnt=0; int num[30005]={0},prime[30005]={0}; // 注意這裏一定要定義 因爲c一直在變 如果for裏面用i<=sqrt(c) 循環跑到85就停了 我試過了 long long must=sqrt(c); for(int i=2;i<=must;i++) { if(c%i==0) { while(c%i==0) { num[cnt]++; c/=i; } prime[cnt++]=i; } } cout<<prime[0]; num[0]--; for(int i=0;i<cnt;i++) { for(int j=0;j<num[i];j++) cout<<"*"<<prime[i]; } cout<<endl; return 0; }