【ABC144 B】「81」を解く【Python3】

「AtCoder」解説一覧へ

整数Nが1以上9以下の2つの整数の積になるかを判定する問題です。

提出
n = int(input())

for i in range(1, 10):
    for j in range(1, 10):
        if i * j == n:
            print("Yes")
            exit(0)

print("No")

与えられるものは整数Nのみです。

掛け算の九九を全て試してみても81通りなので、for文を用いて全部試してみます。

range()関数の2つ目の引数は含まれないので注意が必要です(9を指定してしまうと、8までしか処理されない)。

2つ掛け合わせてnになるものがあった場合、「Yes」と出力してプログラムを終了させます。

プログラムが終了せずにfor文が全て処理された場合、整数Nは2つの整数の積ではないため、「No」と出力します。

if文での条件を以下のようにすると、for文が1つでも可能です。

提出
n = int(input())

for i in range(1, 10):
    if n % i == 0 and n // i <= 9:
        print("Yes")
        exit(0)

print("No")

【ABC144】解説記事

「AtCoder」解説一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です