7-1 求一定范围内的所有完数

简介: 7-1 求一定范围内的所有完数

输入格式:

输入在一行中给出2个正整数m和n(1<m≤n≤1000),中间以空格分隔。


输出格式:

逐行输出给定范围内每个完数的因子,每个完数占一行,格式为“完数 its factors are 1,2,3”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“Not Found!”。


输入样例1:

3 30


输出样例1:

1. 6 its factors are 1,2,3
2. 28 its factors are 1,2,4,7,14


输入样例2:

600 900


输出样例2:

Not Found!


#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
#include <vector>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
using namespace std;
#define endl '\n'
const int N = 10;
int m, n, flag;
int main() {
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin >> m >> n;
    for (int i = m; i <= n; i ++) {
        int sum = 0;
        vector<int> arr;
        for (int j = 1; j < i / 2 + 1; j ++) {
            if (i % j == 0) {
                arr.push_back(j);
                sum += j;
            }
        }
        if (sum == i) {
            cout << i << " its factors are ";
            for (int j = 0; j < arr.size(); j ++) {
                if (j) cout << ',';
                cout <<arr[j], flag = 1;
            }
            cout << endl;
        }
    }
    if (!flag) cout << "Not Found!" << endl;
    return 0;
}



目录
相关文章
筛质数、分解质因数和快速幂的应用
筛质数、分解质因数和快速幂的应用
64 0
|
3月前
|
存储
完数
这段代码用于查找1000以内的所有完数,并找出每个完数的因子及其和。完数是指一个数恰好等于其所有因子之和,例如6=1+2+3。代码首先定义了一个`findDivisors`函数来查找某个数的所有因子并计算其和,然后在主函数中遍历2到1000之间的数,利用`findDivisors`函数判断是否为完数,并输出完数及其因子。最后释放分配给因子数组的内存。
46 7
|
3月前
|
存储 C语言
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
85 4
|
3月前
|
移动开发 算法
求其最大公约数和最小公倍数
求其最大公约数和最小公倍数。
77 5
|
7月前
|
机器学习/深度学习
完全平方数
完全平方数.。
77 0
|
7月前
38.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
38.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
66 0
|
7月前
26.一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3,求1000以内所有的完数.
26.一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3,求1000以内所有的完数.
73 0
求一个数是几位数并输出逆序数
求一个数是几位数并输出逆序数
69 0
|
7月前
|
人工智能 Java C++
分解质因数
分解质因数
55 1
|
7月前
|
C++
有效的完全平方数(C++)
有效的完全平方数(C++)
73 0