思路梳理
首先我们要搞懂什么是被整除
a/b余数为零 a除以b 我们称作b能整除a 或者说 a能被b整除
随机输入一个数 a 判断能否被幸运数整除 记幸运数为b 则可表示为 a/b 判断是否整除 则b一定小于a 那我们的循环范围可以缩小为<=a (a可能为幸运数)这个循环范围是为了寻找在<=a范围内的幸运数,以便用a%(<=a范围内的幸运数)来判断余数是否为0
为0 则能被一个幸运数整除
不为0 则不能被一个幸运数整除
代码部分
# 作者 真珠格格
# 创作时间 2023/2/28 13:09
def fun(a): #首先定义一个判断是否为幸运数的函数fun()
a=str(a)
b = []
for i in range(0, len(a)):
if a[i] == '4' or a[i] == '7':
c = 1
b.append(c)
else:
c = 0
b.append(c)
if 0 in b:
return 0
else:
return 1
def main():
c = int(input()) #随机输入一个数
i=1
s=[]
while i<=c: #思路部分说的循环范围
b=fun(i) #调用fun()判断是否为幸运数的函数fun()
if b and c%i==0:
flag=1
s.append(flag)
break
else:
flag=0
s.append(flag)
i+=1
if 1 in s:
print('YES')
else:
print('NO')
if __name__ == '__main__':
main()
欢迎指正~