LoginSignup
2
0

More than 5 years have passed since last update.

Project Euler 43「部分文字列被整除性」

Posted at

ドヤァ

Problem 43 「部分文字列被整除性」

数1406357289は0から9のパンデジタル数である (0から9が1度ずつ現れるので). この数は部分文字列が面白い性質を持っている.
d1を上位1桁目, d2を上位2桁目の数とし, 以下順にdnを定義する. この記法を用いると次のことが分かる.
d2d3d4=406 は 2 で割り切れる
d3d4d5=063 は 3 で割り切れる
d4d5d6=635 は 5 で割り切れる
d5d6d7=357 は 7 で割り切れる
d6d7d8=572 は 11 で割り切れる
d7d8d9=728 は 13 で割り切れる
d8d9d10=289 は 17 で割り切れる
このような性質をもつ0から9のパンデジタル数の総和を求めよ.

from itertools import permutations

def hoge():
    divisors = [ 2,3,5,7,11,13,17 ]
    return sum(int(''.join(p))
               for p in permutations('0123456789')
               if all(int(''.join(p[i:i+3])) % d == 0
                      for i, d in enumerate(divisors, start=1)))

print(hoge())

ドヤァ(ちょっと時間かかるけども。。。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0