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

推荐订阅源

V
V2EX
C
Check Point Blog
博客园_首页
B
Blog
D
Docker
U
Unit 42
量子位
I
InfoQ
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
GbyAI
GbyAI
L
LangChain Blog
云风的 BLOG
云风的 BLOG
博客园 - Franky
美团技术团队
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
Vercel News
Vercel News
Recent Announcements
Recent Announcements
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Google DeepMind News
Google DeepMind News

飞絮落叶雪 - 编程

我让 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;
}