题目:
每个整数都希望可以整除很多数字,特别是它自身包含的数字,我们将整数分为三类:
1. 数字可以整除它包含的一部分数字,比如72,由,7和2两种数字组成,72可以整除2,我们称这个数字是开心的,用”H”表示。
2. 数字不能整除它包含的任何数字,比如73,由,7和3两种数字组成,73不能整除任何数,我们称这个数字是沮丧的,用”S”表示。
3. 数字可以整除它包含的所有数字,比如12,既可以整除1又可以整除2,我们称它是一个非常棒的数,用“G”表示。 (0可以被任何数整除。)
输入:
正整数数列:[23,12,73,25]
输出:
23 S
12 G
73 S
25 H
答案:
代码实现(python):
list1 = [23, 12, 73, 25]
for j in list1:
n = int(j)
if n <= 10:
print(j, 'G')
continue
len1 = len(j)
list2 = []
for m in range(len1 - 1, -1, -1):
c = pow(10, m)
ret = n // c
# 取整获取每一位数字
list2.append(ret)
n = n - (c * ret)
n = int(j)
mark = 0
for p in list2:
# print(p, n)
if p == 0:
mark = mark + 1
continue
ret = n % p
# 取余检查是否可以被整除
if ret == 0:
mark = mark + 1
if mark == 0:
print(j, 'S')
elif mark == len(list2):
print(j, 'G')
else:
print(j, 'H')