首页 > 试题广场 >

数字的情绪

[编程题]数字的情绪
  • 热度指数:4413 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定一个正整数 n,设其十进制表示中出现过的数字集合为 \{d_1,d_2,\dots,d_k\}(当且仅当 n=0k=0)。我们按照下面的规则将 n 划分为三种情绪:
\hspace{23pt}\bullet\, 若存在某些 d_i,d_j 使得 d_i\mid nd_j\nmid n,则称 n开心数,记作 \texttt{H}
\hspace{23pt}\bullet\, 若对所有 d_i 均有 d_i\nmid n,则称 n沮丧数,记作 \texttt{S}
\hspace{23pt}\bullet\, 若对所有 d_i 均有 d_i\mid n,则称 n极棒数,记作 \texttt{G}
\hspace{15pt}特别地,我们认为对任意的正整数 n,均有 0\mid n

输入描述:
\hspace{15pt}第一行输入一个整数 T\left(1\leqq T\leqq 100\right) 表示测试数据组数,每组测试数据描述如下: 
\hspace{23pt}\bullet\, 接下来一行输入一个整数 n\left(1\leqq n\leqq 10^{12}\right) 表示待判断的数字。


输出描述:
\hspace{15pt}对于每一组测试数据,在一行上输出对应的情绪类型 \texttt{H}\texttt{S}\texttt{G}
示例1

输入

3
72
73
12

输出

H
S
G

说明

\hspace{23pt}\bullet\, 对于 72,其数字集合为 \{7,2\}72 能被 2 整除但不能被 7 整除,因此输出 \texttt{H}
\hspace{23pt}\bullet\, 对于 73,其数字集合为 \{7,3\}73 不能被 7 也不能被 3 整除,因此输出 \texttt{S}
\hspace{23pt}\bullet\, 对于 12,其数字集合为 \{1,2\}12 能被 12 都整除,因此输出 \texttt{G}

这道题你会答吗?花几分钟告诉大家答案吧!