A,B,Cは出力を整える問題です.
# ITP1_5_A
while True:
H,W = map(int,input().split(" "))
# 終了条件
if H==0 and W==0:
break
for _ in range(H):
for _ in range(W):
print("#",end="")
print()
# 改行が必要
print()
# ITP1_5_B
while True:
H,W = map(int,input().split(" "))
# 終了条件
if H==0 and W==0:
break
for i in range(H):
for j in range(W):
# 最初と最後だけ "#" にする
if i==0 or i==H-1 or j==0 or j==W-1:
print("#",end="")
else:
print(".",end="")
print()
# 改行が必要
print()
# ITP1_5_C
while True:
H,W = map(int,input().split(" "))
# 終了条件
if H==0 and W==0:
break
for i in range(H):
for j in range(W):
# i+j の偶奇で判断
if (i+j)%2 == 0:
print("#",end="")
else:
print(".",end="")
print()
# 改行が必要
print()
# ITP1_5_D
n = int(input())
i = 1
print(" ",end="") # 先頭に空白を出力する
while True:
x = i
# CHECK_NUM
if x%3==0:
print(i,end=" ")
x = 0
# INCLUDE3
elif x%10==3:
print(i,end=" ")
x = 0
while x:
x /= 10
x = int(x)
if x%10==3:
print(i,end=" ")
x = 0
i += 1
if i > n:
break
print() # 最後に改行
3を含むかどうかは文字列で判定してしまうこともできます.
# ITP1_5_D
n = int(input())
print(" ",end="") # 先頭に空白を出力する
for i in range(1,n+1):
if i%3==0:
print(i,end=" ")
continue
str_num = str(i)
for j in range(len(str_num)):
if str_num[j]=="3":
print(i,end=" ")
break
print() # 最後に改行