008 - 完全数

時間制限 3 秒 / メモリ制限 64 MB / 得点 20 / x 4 /


TLE
3sec
MLE
64MB
得点
20

問題

ある整数 N に対し,その数自身を除く約数の和を S とする. N = S のとき N は完全数 (perfect number), N > S のとき N は不足数 (deficient number), N < S のとき N は過剰数 (abundant number) と呼ばれる. 与えられた整数が,完全数・不足数・過剰数のどれであるかを 判定するプログラムを作成せよ.

プログラムの実行時間が制限時間を越えないように注意すること.

入力

入力はデータセットの並びからなる. データセットの数は 100 以下である.

各データセットは整数 N (0 < N ≤ 100000000) のみを含む1行からなる.

最後のデータセットの後に,入力の終わりを示す 0 と書かれた1行がある.

出力

各データセットに対し, 整数 N が完全数ならば “perfect number”, 不足数ならば “deficient number”, 過剰数ならば “abundant number” という文字列を 1行に出力せよ.

入力例

1
2
3
4
6
12
16
28
33550336
99999998
99999999
100000000
0

出力例
deficient number
deficient number
deficient number
deficient number
perfect number
abundant number
deficient number
perfect number
perfect number
deficient number
deficient number
abundant number