Операции с последовательностью

Операции с последовательностью

Помогите, пожалуйста, с написанием программы. Задание: разработать процедуру, которая среди N натуральных чисел находит первую пару дружественных. Для выполнения операций над числами последовательности использовать функцию. Вот код для нахождения дружественных чисел.

int SUM1(int x, int Sum_1)
{
int i, n;
n = x/2;
Sum_1 = 0;
for (i = 1; i <= n; i++)
{
if (x%i == 0)
{
Sum_1 = Sum_1 + i;
}
}
return *Sum_1;
}

Если тупо, то примерно так:

int main() {
    setlocale(LC_CTYPE, "Russian");

    int n;

    cout << "Укажите N: ";
    cin >> n;

    for (int x = 0; x <= n; ++x) {
        int x2 = 0, x1 = 0;
        x2 = SUM1(x, &x2);
        if (x2 <= x)
            continue;
        if (SUM1(x2, &x1) == x && x2 <= n) {
            cout << "Первая пара дружественных чисел: " << x << ", " << x2 << endl;
            return 0;
        }
    }

    cout << "Дружественных чисел нет :-\\" << endl;

    return 0;
}

Функция SUM1 выглядит странно: второй параметр — как пятое колесо у телеги — только мешается.

А можно и проще написать, без использования функции SUM1:

int main() {
    setlocale(LC_CTYPE, "Russian");

    int n;

    cout << "Укажите N: ";
    cin >> n;

    if (n >= 284)
        cout << "Первая пара дружественных чисел: 220, 284" << endl;
    else
        cout << "Дружественных чисел нет :-\\" << endl;

    return 0;
}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.