#! /usr/local/bin/ruby#=======================================# 素因数分解#=======================================classPrimeFactorization# 素因数分解defdecomposit_prime(n)# 割る数の初期値a=2# √n ≧ a ( n ≧ a * a ) の間ループ処理whilen>=a*a# a で割り切れたら、a は素因数# そして、割られる数を a で割る# a で割り切れなかったら a を 1 増加させるifn%a==0print"#{a} * "n/=aelsea+=1endend# 最後に残った n は素因数putsnendendif__FILE__==$0begin# 計算クラスインスタンス化obj=PrimeFactorization.newwhiletrue# データ入力print"自然数 ( 0 : 終了 ):"int_num=gets.chomp.to_ibreakifint_num<1# 素因数分解obj.decomposit_prime(int_num)endrescue=>eputs"[例外発生] #{e}"endend