如何显示小于给定数字的所有大量数字

时间:2015-12-08 07:55:25

标签: c++ c++11

我无法将我的算法转换为c ++代码,该代码将显示所有大于输入数字的数字。我想创建一个程序,显示所有大于输入数字的数字。例如,如果我输入的数字为19,则控制台应打印出12和18.算法就是这样。

  1. 扫描每个号码
  2. 检查其数量是否充足
  3. 如果数量充足,请将其打印出来
  4. 我正在使用Microsoft Visual Studios 2013 IDE和支持c ++ 11的编译器。

    这是我到目前为止的代码

    #include <iostream>
    using namespace std;
    int main()
    {
    int number;
    cout << "Enter a number" << endl;
    cin >> number;
    for (int i = 1; i < number; i++)
    {
    // Don't know what to put here
    }
    char inputCharacter;
    cin >> inputCharacter;
    return 0;
    }
    

2 个答案:

答案 0 :(得分:0)

我不知道,数量是多少,但如果你的意思是:https://en.wikipedia.org/wiki/Abundant_number 那么这可以帮到你:

#include <iostream>
using namespace std;

int main()
{
    int number;
    cout << "Enter a number" << endl;
    cin >> number;

    for (int i = 1; i < number; i++)
    {
        int sum = 0;
        for(int k = 1; k < i; k++)
        {
            if(i % k == 0)
            {
                sum += k;
            }
        }

        if(sum > i)
        {
            cout << i << endl;
        }
    }

    char inputCharacter;
    cin >> inputCharacter;
    return 0;
}

如果您需要有关算法的任何解释,请直接询问。

答案 1 :(得分:0)

int number;
cout << "Enter a number" << endl;
cin >> number;

for (int i ==1; i<number; i++)
{
    int temp =0;
    for (int j ==1; j<i; j++)
    {
        if (i%j==0)
        {
            temp+=j;
        }
    }
    if (temp>i)
    { 
       cout<<j;
    }


}

这使用模块划分,并将累积所有数字作为因子。 如果上面的回报1丰富,我认为...如果我对正确的丰富度有了正确的认识。