技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

プログラマ脳を鍛える数学パズル 12

平方を取った時…なんて問題。
問題文は本読んで…

プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問

プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問

文字列化して、先頭 10 桁を取り、0-9 が含まれてればOK

from math import sqrt


def contain_nums(v):
    # 0-9 が含まれてるかどうか
    for n in range(10):
        str_n = str(n)
        if not str_n in v:
            return False
    return True


num = 0
while True:
    num += 1
    sq = '{0:10.10f}'.format(sqrt(num))
    sq = sq.replace('.', '')  # 整数部分を含む
    if contain_nums(sq[0:10]):
        print(f'num:{num}, value:{sqrt(num)}')
        break

num = 0
while True:
    num += 1
    sq = '{0:10.10f}'.format(sqrt(num))
    idx = sq.index('.') + 1
    sq = sq[idx:]  # 小数点以下のみ
    if contain_nums(sq[0:10]):
        print(f'num:{num}, value:{sqrt(num)}')
        break