AtCoderの 755 というC問題をPythonで解いてみました。再帰関数を使うと解きやすい問題です。
日本の競技プログラミング界では言わずと知れたけんちょんさんの記事を参考にしました。
参考記事:https://drken1215.hatenablog.com/entry/2019/04/03/125400
まだよわよわなので、論理演算子とビット演算子の違いの理解に苦労しました。
これらの理解に助かった記事はこちら↓
http://ings.sakura.ne.jp/prog/bitoperator.html
N = int(input())
def func(cur, use, counter):
if cur > N: return
if use == 0b111: counter.append(1) # 答えを増やす
# 7を付け加える
func(cur * 10 + 7, use | 0b001, counter)
# 5を付け加える
func(cur * 10 + 5, use | 0b010, counter)
# 3を付け加える
func(cur * 10 + 3, use | 0b100, counter)
res = []
func(0, 0, res)
print(sum(res))