输入两个正整数 m 和 k,其中1 < m < 100000,1 < k < 5 ,判断 m 能否被19整除,且恰好含有k个3,如果满足条件,则输出YES,否则,输出NO。
例如,输入:
43833 3
满足条件,输出YES。
如果输入:
39331 3
尽管有3个3,但不能被19整除,也不满足条件,应输出NO。
```python
# 读入输入的 m 和 k
m, k = map(int, input().split())
# 判断 m 能否被 19 整除
if m % 19 != 0:
print("NO")
else:
# 判断 m 中 3 的个数是否为 k
count = 0
while m > 0:
if m % 10 == 3:
count += 1
m //= 10
if count == k:
print("YES")
else:
print("NO")
在这段代码中,我们先读入输入的 m 和 k,然后判断 m 能否被 19 整除。如果不能,直接输出 NO。否则,我们再判断 m 中 3 的个数是否为 k,如果是,输出 YES,否则输出 NO。
例如,对于输入的 m=43833 和 k=3,程序会先输出 YES。对于输入的 m=39331 和 k=3,程序会输出 NO。
我们来看一下这段代码的工作流程:
1.读入输入的 m 和 k:我们使用 map(int, input().split()) 函数将输入的字符串分割成两个数字,然后将这两个数字赋值给 m 和 k 变量。
2。判断 m 能否被 19 整除:我们使用 if 语句来判断 m % 19 是否为 0,如果是,就进入下一步;如果不是,就输出 NO 并结束程序。
3。判断 m 中 3 的个数是否为 k:我们使用 while 循环来不断地除以 10,并判断最后一位是否为 3。如果是,就将 count 变量加 1,否则就继续循环。当 m 变为 0 时,就退出循环。然后,我们再使用 if 语句判断 count 变量是否等于 k,如果是,就输出 YES,否则输出 NO。
m,k=input().split()
if int(m)%19==0 and m.count('3')==int(k):
print('YES')
else:
print('NO')
#!/sur/bin/nve
# coding: utf-8
s = '1<m<100000, 1<k<5'
m, k = map(int, input(f"\n{s:~^50}\n\n{'输入两个整数m、k(如43833 3):'}").strip().split())
if m%19==0 and str(m).count('3')==k:
print(f"{' Yes ':~^50}")
else:
print(f"{' No ':~^50}")