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

推荐订阅源

Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
J
Java Code Geeks
L
LangChain Blog
V
V2EX
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
博客园 - 司徒正美
B
Blog
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - 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;
}