#include<cstdio>
#include<vector>

#define	mp	make_pair
#define	pb	push_back

using namespace std;

typedef	vector<int>		vi;
typedef	pair<int,int>	pii;

int main(){
	static bool era[10000];
	for(int i=2;i<100;i++){
		if(!era[i])	for(int j=i*i;j<10000;j+=i)	era[j]=true;
	}

	vi pr;
	for(int i=2;i<10000;i++)	if(!era[i])	pr.pb(i);

	for(int n;scanf("%d",&n),n;){
		int nn=n;
		vector<pii> div;
		for(int i=0;i<pr.size()&&n>1;i++){
			if(n%pr[i]==0){
				int m=0;
				do{
					n/=pr[i];
					m++;
				}while(n%pr[i]==0);
				div.pb(mp(pr[i],m));
			}
		}
		if(n>1)	div.pb(mp(n,1));

		long long dsum=1;
		for(int i=0;i<div.size();i++){
			int d=div[i].first,m=div[i].second;
			long long tmp=1;
			for(int j=0;j<m+1;j++)	tmp*=d;
			dsum*=(1-tmp)/(1-d);
		}
		dsum-=nn;

		puts(nn==dsum?"perfect number":nn<dsum?"abundant number":"deficient number");
	}

	return 0;
}