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

推荐订阅源

博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
博客园 - 司徒正美
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
爱范儿
爱范儿
月光博客
月光博客
The GitHub Blog
The GitHub Blog
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog
T
Tailwind CSS Blog
美团技术团队
D
Docker
V
Visual Studio Blog
Martin Fowler
Martin Fowler
博客园 - 聂微东
The Cloudflare 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;
}