您的位置:首页 > Web前端

ZOJ 1284 Perfection

2017-06-13 09:11 295 查看
查看原题

题意

如果一个数的所有真约数等于它本身,即完全数

如果大于它本身,则abundant

否则deficient

注意输入输出,要求对齐

思路

代码

#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
int temp[1000];
int isPerfect(int n){
int sum=0;
for(int i=1;i<=n/2;i++){
if(n%i==0){
sum+=i;
}
}
if(sum==n){
return 1;
}
else if(sum>n){
return 2;
}
else{
return 0;
}
}
int main(int argc, char *argv[])
{
int step=0;
while(cin>>temp[++step]){
if(temp[step]==0){
break;
}
}
cout<<"PERFECTION OUTPUT"<<endl;
for(int i=1;i<=step;i++){
if(temp[i]==0){
cout<<"END OF OUTPUT"<<endl;
break;
}
printf("%5d  ",temp[i]);//注意这里
if(isPerfect(temp[i])==1){
cout<<"PERFECT"<<endl;
} else if(isPerfect(temp[i])==2){
cout<<"ABUNDANT"<<endl;
}else{
cout<<"DEFICIENT"<<endl;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: