P15930 [TOPC 2021] Aliquot Sum

题目描述

正整数 $n$ 的约数是指满足 $m = \frac{n}{d}$ 为整数的整数 $d$。在本问题中,我们定义正整数 $n$ 的真因子和 $s(n)$ 为 $n$ 的所有不等于 $n$ 本身的约数之和。例如,$s(12) = 1 + 2 + 3 + 4 + 6 = 16$,$s(21) = 1 + 3 + 7 = 11$,$s(28) = 1 + 2 + 4 + 7 + 14 = 28$。 根据真因子和,我们可以将正整数分为三类:过剩数、亏数、完全数。规则如下: 1. 若 $s(x) > x$,则正整数 $x$ 是过剩数(abundant number)。 2. 若 $s(y) < y$,则正整数 $y$ 是亏数(deficient number)。 3. 若 $s(z) = z$,则正整数 $z$ 是完全数(perfect number)。 给定一个正整数列表,请编写程序对它们进行分类。

输入格式

输入的第一行包含一个正整数 $T$,表示测试用例的数量。输入的第二行包含 $T$ 个空格分隔的正整数 $n_1, \dots, n_T$。

输出格式

输出 $T$ 行。若 $n_i$ 是过剩数,则第 $i$ 行输出 **abundant**;若 $n_i$ 是亏数,则输出 **deficient**;若 $n_i$ 是完全数,则输出 **perfect**。

说明/提示

- $1 \leq T \leq 10^6$ - $1 \leq n_i \leq 10^6$,对于 $i \in \{1, 2, \dots, T\}$ 翻译由 DeepSeek V3.2 完成