收藏
难度:简单
标签:卓越班选拔
题目描述
在数字王国中,人人都有一个号码,人人都想知道这个号码对自己意味着什么。国王便做了很多个盒子,每个盒子拥有一个号码。人们需要通过一定的方法才能确定哪个盒子有自己的秘密。这个办法就是把自己的数字N的全部因子相加求和。例如12,他因子之和就是1+2+3+4+6=16。现在他们邀请你帮助编写一个函数,寻找他们的密码盒子。
输入
输入数据的第一行是一个数字T(1 <= T <= 500000),它表明有T个需要进行测试的数字,然后是T个测试数据,每个测试数据为一个数字N(0 <= N <= 500000)。
输出
对于每个测试数据,请输出一个代表输入数据的密码编号。
样例输入复制
3 2 10 20
样例输出复制
1 8 22
#include <iostream>
#include <vector>
using namespace std;
int f(int n) {
    int sum = 0;
    for (int i = 1; i < n; i++) {
        if (n % i == 0) {
            sum += i;
        }
    }
    return sum;
}
int main() {
    vector<int> res;
    int n;
    cin >> n;
    for (int i = 0; i < n; i++) {
        int num;
        cin >> num;
        int a = f(num);
        res.push_back(a);
    }
    for (int i : res) {
        cout << i << endl;
    }
    return 0;
}同样思路用Python就超时了




![[游戏开发]Unreal引擎知识](https://img-blog.csdnimg.cn/direct/02d83738a2604e6c9898f0180b805e79.png)














