Python难解问题

给一个整数,判断它能否被3, 5,7整除,并输出以下信息:
1、能同时被3, 5,7整除(直接输出357,每个数中间一个空格);
2、只能被其中两个数整除(输出两个数,小的在前,大的在后。例如: 35或者37或者57,中间用空格分隔);
3、只能被其中一个数整除(输出这个除数);
4、不能被任何数整除,输出小写字符n',不包括单引号。
输入格式
输入一行,包括一个整数。
输出格式
输出一行,按照描述要求给出整数被3,5,7整除的情况。


n=int(input())
a=n%3
b=n%5
c=n%7
if a==0:
  if b==0:
    if c==0:
      print("3 5 7")
    else:
      print("3 5")
  elif c==0:
    print("3 7")
  else:
    print(3)
elif b==0:
  if c==0:
    print("5 7")
  else:
    print(5)
elif c==0:
  print(7)
else:
  print("n")

这个比较难解啊

贴几行代码,可供参考。

try:
    number = int(input("请输入一个数字:"))
    arry = [3,5,7]
    output_list = []
    for i in arry:
        div_ = number % i
        if not div_:
            output_list.append(str(i))
    if output_list:
        print (" ".join(sorted(output_list)))

    else:
        print("n")
except Exception as e:
    print("输入的不是数字")



img


num = int(input(""))

a, b, c=3, 5, 7

res = [num%a,num%b,num%c]

if all(res):
    print("n")
else:
    t = [(a,b,c)[i]  for i in range(len(res)) if not res[i]]
    print(*t)