AtCoder Beginner Contest 180 A〜C問題
前書き
AtCoder Beginner Contest 180 A〜C問題を解きました!
B問題
- 難易度:灰
- 時間:6分
マンハッタン距離、ユークリッド距離、チェビシェフ距離を計算するだけの問題です。
import math N=int(input()) X=list(map(int, input().split())) m,y,c=0,0,0 for x in X: m+=abs(x) y+=abs(x)**2 c=max(abs(x),abs(c)) print(m) print(math.sqrt(y)) print(c)
C問題
- 難易度:灰
- 時間:6分
C問題としては回答時間が個人最速ですが、難易度が他大会より低かったように思えます。
入力数値は1≤N≤10**12ということでまともに解いていてはTLEです。
Nの剰余の出ない商を求めればいいです。
for文で回す実行回数は、最大でも10**12の平方根である10**6が最大として探索します。
import math N=int(input()) n=math.ceil(math.sqrt(N)) lis = [] for i in range(1,n+1): if N%i==0: lis.append(int(N/i)) lis.append(i) lis = sorted(set(lis)) for j in lis: print(j)