日期:2025年12月23日
ZeroJudge 題目連結:a158. 11827 - Maximum GCD
解題想法
這題每一行測資讀取的數字數量不固定,因為 Python 都是一次讀取一行資料,寫法沒有差異;但是 C++ 讀取資料時比較麻煩,需要用 getline 一次讀取一行字串 s,再將 s 存入 stringstream 物件 ss,最後用 while 迴圈將 ss 之中的資料一次取一個出來存入 vector 之中。
Python 程式碼
使用時間約為 0.1 s,記憶體約為 3 MB,通過測試。
import sys, math
result = []
lines = sys.stdin.readlines()
idx = 1
while idx < len(lines):
if not lines[idx].strip():
idx += 1
continue
nums = tuple(map(int, lines[idx].split()))
idx += 1
m = len(nums)
ans = 1
for i in range(m-1):
for j in range(i+1, m):
ans = max(ans, math.gcd(nums[i], nums[j]))
result.append(f"{ans:d}\n")
sys.stdout.write("".join(result))