「素因数分解」(2011/02/12 (土) 21:12:43) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*素因数分解
説明を書くのが面倒くさいので、とりあえずソースコードだけ載せておきます。
小さい数なら問題なく分解できるはずです。
#include <iostream>
#include <vector>
using namespace std;
//素因数分解
vector<int> f(int x){
int d=3, q;
vector<int> vc;
while( x >= 4 && (x % 2) == 0 ){
vc.push_back( 2 );
x /= 2;
}
q = x / d;
while( q >= d ){
if( (x % d) == 0 ){
vc.push_back( d );
x = q;
}else{
d += 2;
}
q = x / d;
}
vc.push_back( x );
return vc;
}
int main(){
int x;
vector<int> vc;
while( cin >> x , x ){
vc.clear();
vc = f(x);
cout << x << " = " ;
for(int i=0 ; i<vc.size() ; i++){
cout << vc[i] << "";
(i==vc.size()-1)? cout << endl : cout << " * ";
}
}
}
...
表示オプション
横に並べて表示:
変化行の前後のみ表示: