首页 > 试题广场 >

数字的情绪

[编程题]数字的情绪
  • 热度指数:2285 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解

每个整数都希望可以整除很多数字,特别是它自身包含的数字,我们将整数分为三类:

1. 数字可以整除它包含的一部分数字,比如72,由,72两种数字组成,72可以整除2,我们称这个数字是开心的,用”H”表示。

2. 数字不能整除它包含的任何数字,比如73,由,73两种数字组成,73不能整除任何数,我们称这个数字是沮丧的,用”S”表示。

3. 数字可以整除它包含的所有数字,比如12,既可以整除1又可以整除2,我们称它是一个非常棒的数,用“G”表示。  (0可以被任何数整除。)


输入描述:
输入第一行包含一个整数T,表示数据组数(1<=T<=100). 接下来T行,每行包含一个正整数n(1<=n<=10^12),表示需要你判断的数字。


输出描述:
对于每组测试数据输出一行,“H”,“S”或“G”。表示整数种类。
示例1

输入

3
72
73
12

输出

H
S
G
T = int(input())

a = [] # 存储输入的整数
for i in range(T):
    a.append(input())

for num in a:
    b = [] # 存放整数的每一位数
    for i in range(len(num)):
        if int(num[i]):
            b.append((int(num)) % (int(num[i])))
        else:
            b.append(0)
    if b.count(0) == len(b):
        print("G")
    elif b.count(0) == 0:
        print("S")
    else:
        print("H")
发表于 2020-06-17 09:39:52 回复(0)