C - 755
個人的にはすきな問題。 https://atcoder.jp/contests/abc114/tasks/abc114_c
dfsで753が現れる数を列挙して、そのなかから753が一回づつ現れるものを足していく。
def solve():
N = int(input())
# 文字列 s で始まる七五三数の個数
def dfs(s):
if int(s) > N:
return 0
ret = 0
# s 自体が七五三数なら +1
if all(s.count(c) > 0 for c in '753'):
ret = 1
else:
ret = 0
for c in '753':
ret += dfs(s + c)
return ret
print(dfs('0'))
if __name__ == "__main__":
solve()
all()
関数は、なかに含まれるすべてがTRUEになるとTRUEを返す便利な関数。