题目描述 上海市计算机学会竞赛平台 | YACS
如果一个十进制正整数能够被它的每一个非零数码整除,则称它为巧妙的数,譬如 102102 是一个巧妙的数,因为 102 能被 1 与 2 整除,而 2021 不是,因为它不能被 2 整除。给定一个正整数 n,请判定它是否为巧妙的数。
这里面要用到一个高精度除法的做法,原理复杂,以后有时间了专门记录一下。这次的程序只有70分,不过所幸能查看其它AC写法,不过技艺不精,没看出为啥超时。。还有一个WA
n=input()
num=[0]*len(n)
for i in range(len(n)):
num[len(n)-i-1]=n[i]
# print(num)
def isInteger(b): #b作为除数,模拟除法竖式计算
mod = 0 #mod用于存储余数
for i in range (len(n)-1,-1,-1):
# print(int(num[i]))
mod = (int(num[i]) + mod * 10) % b
return mod
#如果mod为0,说明能被整除,否则不能被整除
a=set(num)
a.remove('0')
# print(a)
def judge():
for i in a:
tmp=int(i)
out=isInteger(tmp)
if out!=0:
return ("not clever")
return "clever"
print(judge())