此题的思路就是:求出给出的数n的除本身以外的约数,然后加起来的sum
if n>sum DEFICIENT
if n<sum ABUNDANT
if n==sum prefect
当输入0的时候输出“END OF OUTPUT”同时程序结束
这个题目还有一个需要注意的地方呢就是在输出的时候格式要注意,数字所占的长度为5,所以要用setw控制,并且头文件是#include<iomanip>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <iostream> 2 #include<iomanip> 3 using namespace std; 4 int main(int argc, char *argv[]) 5 { 6 int n,sum; 7 cout<<"PERFECTION OUTPUT"<<endl; 8 while(cin>>n){ 9 sum=0; 10 11 if(n==0) {cout<<"END OF OUTPUT"<<endl; break;} 12 else{ 13 for(int i=1;i<=n/2;i++) 14 { 15 if(n%i==0) 16 sum+=i; 17 } 18 19 if(n<sum) cout<<""<<setw(5)<<n<<" "<<"ABUNDANT"<<endl; 20 else if(n==sum) cout<<""<<setw(5)<<n<<" "<<"PERFECT"<<endl; 21 else cout<<""<<setw(5)<<n<<" "<<"DEFICIENT"<<endl; 22 } 23 24 } 25 26 return 0; 27 }