惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
美团技术团队
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
有赞技术团队
有赞技术团队
GbyAI
GbyAI
宝玉的分享
宝玉的分享
腾讯CDC
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
月光博客
月光博客
MyScale Blog
MyScale Blog
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog

飞絮落叶雪 - 编程

我让 Ai 写了一个记账本 1011-空心六边形 1149 - 回文数个数 1071 - 字符图形7-星号菱形 1140 - 亲密数对 1138 - 求无暇素数 1089 - 找数字 1151-桐桐数
1136 - 输出m和n范围内的完全数(完美数)
Mr.He · 2024-06-13 · via 飞絮落叶雪 - 编程

1136完美数.png

思路:

  1. 遍历m~n的所有数字,找出它的因数;
  2. 将因数求和;
  3. 符合条件输出。

知识点

  1. 复习因数求和知识(与之前不同的是,这里的因数包含1,所以初始化为1;
  2. 函数的调用.

代码实现

#include <iostream>
using namespace std;

//定义求一个整数因数和的函数
int yinshuhe(int n) {
    int i, c = 1;
    for(i = 2; i * i <= n; i++) {
        if(n % i == 0) {
            if(n / i != i) {
                c = c + i + n / i;
            } else {
                c = c + i ;
            }
        }
    }
    return c;
}

int main() {
    int m, n, i, j;
    cin >> m >> n;
    //遍历m~n的整数
    for(i = m; i <= n; i++) {
        j = yinshuhe(i);
        //判断,符合条件就输出,此题要求数字之间用空格
        if(j == i) {
            cout << i <<" ";
        }
    }
    return 0;
}