• PTA_乙级_1096


    在这里插入图片描述
    Q1:因数
    在数学中,一个数的因数是能够整除该数的整数。换句话说,如果我们将一个数 a 除以另一个整数 b 而得到整数商,那么 b 就是 a 的因数。以下是一些例子:
    1.因数的定义:
    如果整数 b 可以被整数 a 整除,那么 b 是 a 的因数。
    2.举例:
    3.对于数 12,它的因数包括 1、2、3、4、6 和 12,因为它们能够整除 12。
    4.对于数 8,它的因数包括 1、2、4 和 8。
    5.对于负数 -6,它的因数包括 -1、2、3 和 -6。
    6.特殊情况:所有整数都有两个特殊的因数,即 1 和它自身。和负数的因数的定义也是相同的,即能够整除它们的整数。

    因数在数学和实际问题中有着重要的应用,例如在分解整数、求最大公约数、解方程等方面。

    #include 
    #include 
    using namespace std;
    
    int main() {
        int n;
        cout << "Enter a positive integer: ";
        cin >> n;
    
        vector<int> v;
    
        // 因为 n 的因数都是成对出现,所以枚举较小的那个因数
        for (int i = 1; i <= n / i; i++) {
            if (n % i == 0) {
                v.push_back(i);
                // 当两个因数不同时,才全部添加
                if (i != n / i) v.push_back(n / i);
            }
        }
    
        cout << "Factors of " << n << " are: ";
        for (int factor : v) {
           cout << factor << " ";
        }
    
        cout << std::endl;
    
        return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    #include 
    #include 
    using namespace std;
    bool check(int n) {
        //因为不确定n因数的个数, 所以我们可以用不定长数组来存储
        vector<int> v;
    
        //因为n 的因数都是成对出现, 所以我们可以枚举较小的那个因数, 
        //随后 用 n / i表示另一个因数
        for (int i = 1; i <= n / i; i++) {
            if (n % i == 0) {
                v.push_back(i);
                //当两个因数不同时,才全部添加
                if (i != n / i) v.push_back(n / i);
            }
        }
        //遍历每个因数
        if (v.size() < 4) return false;
        for (int i = 0; i < v.size(); i++)
            for (int j = i + 1; j < v.size(); j++)
                for (int l = j + 1; l < v.size(); l++)
                    for (int r = l + 1; r < v.size(); r++)
                        if ((v[i] + v[j] + v[l] + v[r]) % n == 0) return true;
        return false;
    
    }
    int main() {
        int n;
        cin >> n;
        for (int i = 0; i < n; i++) {
            int x;
            cin >> x;
            //使用三元表达式来简化输入输出
            // 若函数返回 true 则打印 Yes
            // 反之打印 No
            cout << (check(x) ? "Yes" : "No");
            if (i != n - 1)
                cout << endl;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    求 4 个不同正因数之和用四个for循环即可

  • 相关阅读:
    【校招VIP】前端专业课之七层模型
    C++ 函数:在相同类型参数情况下返回不同类型值
    C语言中宏定义的盲区有哪些?
    hive的建表语句
    2023年9月 少儿编程 中国电子学会图形化编程等级考试Scratch编程一级真题解析(判断题)
    企业聊天应用程序使用 Kubernetes
    React中redux的使用之redux的简单理解,以及创建并使用一个精简版的redux
    [附源码]Python计算机毕业设计SSM教师信息采集系统(程序+LW)
    AI实战 | 由浅入深,手把手带你实现Java转型学习助手
    QML的Popup遇到的坑
  • 原文地址:https://blog.csdn.net/weixin_45454137/article/details/134331857