每日一小練——因子分解
阿新 • • 發佈:2017-06-05
char num class font col margin 技術 getchar lin
實驗結果為
上得廳堂,下得廚房,寫得代碼。翻得圍墻,歡迎來到睿不可擋的每日一小練!
題目:因子分解
內容:編寫一個程序,讀入一個正整數,把它的全部質因子找出來。比如輸入的181944,181944=2^3x3^2x7x19^2,
所以質因子為2,3,7,19。
我的解法:上來沒多想,打開vs2013就敲了起來,問題果然非常easy。分分鐘就超神。。奧,不正確就攻克了!非常easy的一道題目,就是使用有技巧的連除,將數學思想轉換為程序。
#include <iostream> #define MaxNum 1000 using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int n,finalNum; int i, j; int Num[MaxNum] = { 0 }; int count[MaxNum] = { 0 }; int ct = 0; cout << "請輸入一個整數:" << endl; cin >> n; finalNum = n; for (i = 0;(n % 2 == 0) && n > 1;n/=2 ,i++); Num[ct] = 2; count[ct++] = i; for (j = 3; j <= n; j += 2) { for (i = 0;( n%j == 0 )&& n > 1; n/= j, i++); Num[ct] = j; count[ct++] = i; } cout << finalNum << "能夠分解成質因子為:"; int temp = 0; while (temp < ct) { if (count[temp] != 0) { cout << " "<< Num[temp] << "^" << count[temp] << " "; if (temp + 1 != ct) { cout << "x"; } } temp++; } getchar(); getchar(); return 0; }
實驗結果為
歡迎大家增加每日一小練,嘿嘿!
每天練一練。日久見功夫,加油。
-End-
參考文獻:《c語言名題精選百則》
每日一小練——因子分解