そーすにっき

なんかいろいろのせておくばしょ

AOJ2101

http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2101

解法:線形に調べるだけ

コーナーケースがN=1の場合というのは恐れ入った。流石UT

N=1をどう弾いてやるかと思ったが結局最後の出力で無理やりdeficientにする方法で落ち着いた。

#include <cstdio>
  
#define i64 long long
using namespace std;
int main(){
  i64 r,n;
  while(scanf("%lld",&n),n){
    r=0LL;
    for(i64 i=1LL;i*i<n;i++){
      if(!(n%i)){
        r+=i;if(i>1)r+=n/i;
      }
    }
    // printf("%d %d\n",n,r);
    if(r>n){
      puts("abundant number");
    }
    else if(r==n&&n!=1){
      puts("perfect number");
    }
    else{
      puts("deficient number");
    }
  }
}