【AtCoder】ABC324解説(Python)

日本レジストリサービス(JPRS)プログラミングコンテスト2023(AtCoder Beginner Contest 324)の解説記事です。

目次

ABC324 A – Same

問題

問題文の要約は以下の通りです。

問題の要約

\(N\) 個の整数 \(A_1, A_2, \cdots, A_N\) がすべて等しいか判定せよ。

制約

・\(2 \le N \le 100\)
・\(1 \le A_i \le 100\) (\(1 \le i \le 100\))
・入力は全て整数

入力

\(N\)
\(A_1\) \(A_2\) \(\cdots\) \(A_N\)

出力

すべて等しいなら Yes を、そうでなければ No を出力せよ。

解説

setを使用して要素の個数を数える。

解説

\(N\) は使用しないのでinput()だけ行い、変数には格納しません。

# A_iの個数(使用しない)
input()

\(A_i\) をset型で受け取り要素の個数が1であればYes を、そうでなければ No を出力します。

# 出力
print('Yes' if len(set(input().split()))==1 else 'No')

解答

# A_iの個数(使用しない)
input()

# 出力
print('Yes' if len(set(input().split()))==1 else 'No')

ABC324 B – 3-smooth Numbers

問題

問題文の要約は以下の通りです。

問題の要約

正の整数  \(N\) が与えられたとき、 \(N=2^x3^y\) を満たす整数 \(x, y\) が存在するならYes、そうでなければNoと出力せよ。

制約

・\(1 \le N \le 10^{18}\)
・\(N\) は整数

入力

\(N\)

出力

条件を満たす整数 \(x, y\) が存在するならYes、そうでなければNoと出力せよ。

解説

条件は \(N\) が23以外の素因数をもたないことと同値です。つまり、\(N\) を23で割れるだけ割り、結果が1のとき、Yes、そうでなければNoと出力します。

解説

入力 \(N\) をint型として受け取ります。

# 入力
N=int(input())

まず、 \(N\) が2で割り切れる間、2で割ります。2で割り切れなくなったら、\(N\) が3で割り切れる間、3で割ります。

# N が2で割り切れる間、2で割る
while N%2==0:
  N=N//2

# N が3で割り切れる間、3で割る
while N%3==0:
  N=N//3

\(N\) が1のとき、Yes、そうでなければNoと出力します。

# N が1のときYes、そうでなければNoと出力
print('Yes' if N==1 else 'No')

解答

# 入力
N=int(input())

# N が2で割り切れる間、2で割る
while N%2==0:
  N=N//2

# N が3で割り切れる間、3で割る
while N%3==0:
  N=N//3

# N が1のときYes、そうでなければNoと出力
print('Yes' if N==1 else 'No')
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次