丰富的数字测试

时间:2015-12-12 22:51:52

标签: c++ loops menu numbers

自然数n>如果其适当的除数(包括1但不包括n本身)的总和大于其自身,则认为0是一个数。例如,数字12是一个丰富的数字,因为它的除数之和(包括1但不包括12本身)是1 + 2 + 3 + 4 + 6 = 16,它本身大于12。作为对比,数字6不是一个充分的数字,因为它的除数之和(包括1除了6本身)是1 + 2 + 3 = 6,它本身不大于6。请在此处查看更多示例和说明。

好像每次用户输入一个数字时,它总是很丰富。关于需要做什么的任何建议?

    // If the user selects option "a"
    if (option == 'a')
    {
        bool abundantTest(int n);
        {
            int n, i = 1, sum = 0;
            cout << "Enter a number: " << endl;
            cin >> n;

            while (i < n){
                    if (n % i == 0)
                        sum = sum + i;
                        i++;
            }

            if (sum == n){
                cout << i << " is not an abundant number." << endl;
            }
            else{
                cout << i << " is an abundant number." << endl;
            }

        }
    }

1 个答案:

答案 0 :(得分:2)

也许您只想查看

if (sum <= n)

小于或等于大于 相反。

你也可以:

if (sum > n)
    cout << i << " is an abundant number." << endl;
else
    cout << i << " is not an abundant number." << endl;

简要说明:

cout << i << " is " + std::string(sum > n ? "" : "not ") + "an abundant number." << endl;