ACM練習--(三)求質數因子
阿新 • • 發佈:2019-02-19
程式設計求出質數因子
首先我們得知道什麼是質數因子
不懂的可以去百度這裡談談我的對質數因子的理解:
如果給定一個數(得判斷是不是1,如果是1的話不做任何處理,因為1沒有質數),求它的質數因子,那麼我們就開始用這個數對2開始整除(因為1是和所有數互質的),能整除則2就是一個質因子,這樣一直除到不能夠整除2為止,一共整除了多少次就有多少質因子 2 ,然後我們判斷這個數是不是小於等於3^2的(因為質數的平方一定小於等於這個數)開始用這個數重複的整除3,得到多少3,就有多少個質因子 3,然後判斷這個數是不是小於等於4^2的然後整除4.........以此類推
這裡貼出程式碼:
//將一個數n分解為若干個從小到大排列的質數的積 //求質數因子 #include <iostream> using namespace std; int main() { int n; cin >> n; if(n<2)return 0; //1沒有質數 for(int i = 2;i*i<=n;i++) { while(n%i==0) { n=n/i; cout << i ; if(n!=1)cout << " "; } } if(n!=1) cout << n; //判斷最後剩下的n是否為質數 return 0; }