challenge 倍数になる13進数

ここにある正の整数xがあります。xは2桁以上です。この数字の並びが13進法表記であるとみなすと、10進法表記であると見なした場合の倍数になります。この条件を満たす最も小さいxを求めるプログラムを書いてください。

例えばxが567の時、これを13進法表記と見なすと5 * 13 * 13 + 6 * 13 + 7 で 930 になります。930は567の倍数ではないので、567は条件を満たしません。 条件を満たす数を見つけ出すプログラムを書いてください。「条件を満たす数を出力するプログラム」ではありません。(print 567などは禁止ということ。)

これでいける筈。
1
2
3
4
5
6
7
8
use strict;

for(my $i = 10; $i <= 10000; $i++) {
    for(my $c = 0, $_ = $i; /(\d)(\d*)/;) {
        $c = 13 * $c + $1;
        ($_ = $2) || ($c % $i) || printf("%d (%d)\n", $i, $c);
    }
}

Posted feedbacks

Number of comments:118 Nested Flatten
  1. 9 Python
  2. 8 Ruby
  3. 7 Perl Haskell
  4. 6 Common Lisp
  5. 5 PHP Other
  6. 4 C Scheme
  7. 3 Java JavaScript C++
  8. 2 HSP OCaml Matlab C# R Prolog Scala Erlang
  9. 1 Emacs Lisp SQL Pnuts ActionScript なでしこ FORTRAN Groovy D VB.net Lua PowerShell Bash awk Pascal Io Smalltalk StandardML Mathematica J xtal 秀丸マクロ PostScript

Index

Feed

Other

Link

Pathtraq

loading...