1以上N以下の整数のうち、10進数でも8進数でも7を含まないような数がいくつあるのか求める問題です。
提出
n = int(input())
ans = 0
for i in range(1,n+1):
if "7" not in oct(i) and "7" not in str(i):
ans+=1
print(ans)
Pythonでは、「oct()」を用いて数字を8進数の文字列に変換することができます。
(2進数はbin())
print(bin(20))
print(oct(20))
# > 0b10100
# > 0o24
Nまでの整数をすべて調べ、それぞれの10進数と8進数の文字列の中に、「7」が含まれているかどうかを判定します。
どちらも含まれていなければ、「ans」に1足します。
合計数がansに入っているので、最後にそれを出力します。