問題
ある整数 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