Rubyで小町数
最近ちょっと勉強しはじめたRubyの練習です.「自乗したら小町数(1?9までを1回ずつ使った9桁の数,例:324587691)になる整数を全て列挙する」ってのをやってみました.
array = []
(Math.sqrt(123456789).ceil..Math.sqrt(987654321).floor).each do |i|
temp = (i ** 2).to_s.split('')
array.push(i) if temp.uniq.size == 9 and !(temp.include? '0')
end
array.each {|i| puts i.to_s + " ^ 2 = " + (i ** 2).to_s}
puts array.size.to_s + '個発見!'
実行結果
11826 ^ 2 = 139854276 12363 ^ 2 = 152843769 12543 ^ 2 = 157326849 14676 ^ 2 = 215384976 15681 ^ 2 = 245893761 15963 ^ 2 = 254817369 18072 ^ 2 = 326597184 19023 ^ 2 = 361874529 19377 ^ 2 = 375468129 19569 ^ 2 = 382945761 19629 ^ 2 = 385297641 20316 ^ 2 = 412739856 22887 ^ 2 = 523814769 23019 ^ 2 = 529874361 23178 ^ 2 = 537219684 23439 ^ 2 = 549386721 24237 ^ 2 = 587432169 24276 ^ 2 = 589324176 24441 ^ 2 = 597362481 24807 ^ 2 = 615387249 25059 ^ 2 = 627953481 25572 ^ 2 = 653927184 25941 ^ 2 = 672935481 26409 ^ 2 = 697435281 26733 ^ 2 = 714653289 27129 ^ 2 = 735982641 27273 ^ 2 = 743816529 29034 ^ 2 = 842973156 29106 ^ 2 = 847159236 30384 ^ 2 = 923187456 30個発見!
というわけで,30個ありました.
スポンサーサイト
2006/07/22 00:54 | Ruby | トラックバック(0) | コメント(0)