题解 | 完数VS盈数

完数VS盈数

https://www.nowcoder.com/practice/ccc3d1e78014486fb7eed3c50e05c99d

#include<bits/stdc++.h>

using namespace std;
vector<int> vec1;//存放完数 
vector<int> vec2;//存放盈数 
int isying(int n){
	vector<int> vec3;
	int sum=0;
	for(int i=1;i<n;i++)
		if(n%i==0)vec3.push_back(i);
	for(int i=0;i<vec3.size();i++){
		sum=sum+vec3[i];
	}if(sum==n)return 1;// 完数 
	else if(sum>n) return 2;//为赢数 
	else return 0; 
}

int main(){
	for(int i=2;i<=60;i++){
		if(isying(i)==2)vec2.push_back(i);
		if(isying(i)==1)vec1.push_back(i);
	}
	printf("E: ");
	vector<int>::iterator it;
	for(it=vec1.begin();it!=vec1.end();it++){
		printf("%d ",*it);
	}	printf("\n");printf("G: ");
	vector<int>::iterator it1;
	for(it1=vec2.begin();it1!=vec2.end();it1++){
		printf("%d ",*it1);
	}
	return 0;
}

全部评论

相关推荐

zzzilik:没事的,才刚刚开始,后面会捞的,这个三天没人发起面试自动结束,但是面试官还是能看到简历,四月份主战场会慢慢捞
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务