如图:根据下列要求和提示,编写一个函数酆璁冻嘌f(N)判断某数N是否为“完全数”,N由主函数给出;如果N是“完全数”则挣窝酵聒函数值返回1,N不是“完全数”则函数值返回0。“完全数”定义如下:如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。如:6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。#include <iostream>using namespace std;int f(int N);void main(){ int N;cin>>N;if(f(N)==1) cout<<N<<" Shi Wan Quan Shu!"<<endl;else cout<<N<<" Bu Shi Wan Quan Shu!"<<endl;}
工具/原料
C++编译器
一、答案:
1、代码如下:#include <iostream>using namespace std;int f(int N){艘早祓胂 int m(0),i; for(i=1;i<=N/2;i++) if(N%i==0){m+=i; } if(m==N) return 1; else return 0; }int main(){ int N;cin>>N;if(f(N)==1) cout<<N<<" Shi Wan Quan Shu!"<<endl;else cout<<N<<" Bu Shi Wan Quan Shu!"<<endl; return 0;}
2、运行结果:
二、说明:
1、此题已经给出了部分函数,只需要补充自定义函数即可。
2、如图,穷举所有因数:
3、判断是否为“完全数”,并给出返回值:if(N%i==0){m+=i; } if(m==N) return 1; else return 0;