// KY20 完数VS盈数
int Factorsum(int &i) {
int res = 0;
for (int j = 1; j < i; ++j) { //j代表因数,要从1开始
if (i % j == 0) {
res = res + j;
}
}
return res;
}
int main() {
vector<int> evc;
vector<int> gvc;
for (int i = 2; i <= 60; ++i) {
if (i == Factorsum(i)) {
evc.push_back(i);
}
else if (i < Factorsum(i)) {
gvc.push_back(i);
}
}
vector<int>::iterator it;
printf("E:");
for (it = evc.begin(); it != evc.end(); ++it) {
printf(" %d", *it);
}
printf("\n");
printf("G:");
for (it = gvc.begin(); it != gvc.end(); ++it) {
printf(" %d", *it);
}
return 0;
}
考研机试练习题-KY20 完数VS盈数
于 2024-03-07 22:12:18 首次发布
本文介绍了一个C++程序,通过函数intFactorsum计算给定整数i的所有因数之和,然后在2到60的范围内区分并打印出完数(等于其所有因数之和的数)和盈数(小于其因数之和的数)。
摘要由CSDN通过智能技术生成