因数分解
そろそろ、分数のプログラムと組み合わせてみる。
#include <iostream> #include <vector> //#include <math.h> using namespace std; // 因数分解 template<class T> vector<T> Factorization( T n ); template<class T> vector<T> Factorization( T n ) { vector<T> factor_elements; T a = 2; while( n >= a*a ) { if( 0 == n % a ) { // 因数分解の要素を格納 factor_elements.push_back( a ); n /= a; } else ++a; } factor_elements.push_back( n ); return factor_elements; } int main() { cout << "整数を入力してください。>"; int input_n; cin >> input_n; vector<int> factor = Factorization<int>( input_n ); // 結果出力 cout << input_n << " = "; for( int i = 0; i < (int)factor.size(); ++i ) { if( 0 == i ) cout << factor.at(i) << "*"; else if( (factor.size()-1) == i ) cout << factor.at(i) << endl; else cout << factor.at(i) << "*"; } return 0; }