def f( m , r , n ) a = m * pow( ( 1 + r ) , n ) return a end def pow( x , y ) a = 1; y.times { |i| a = a * x } return a end m = 10000 r = 0.05 n = 1 (2..10).each { |p| while true do if f( m , r , n ) > ( m * p ) then break else n += 1 end end printf( "%d円を利率%3.2fで預けた時,元利合計は%d年後に%d円以上となります\n" , m , r , n , m*p ) }