Числа Рамануджана

Есть известное число Рамануджана - 1729. Это наименьшее число, выражаемое как сумма двух кубов двумя разными способами. Другими словами: 1729 = 1^3 + 12^3 = 9^3 + 10^3.

Какие есть еще числа Рамануджана, которые больше 1729? Можно как-то вычислить эти числа с помощью программы? Помогите, пожалуйста...


Ответы (2 шт):

Автор решения: Aziz Umarov

Для начала возьмите перебор. 4 переменные 1 тождество если тождество верно то на печать иначе следующий. Определитесь с границами поиска и в бой

→ Ссылка
Автор решения: Harry

Ну, на питоне напишите сами, а на С++, чтоб найти такие числа до миллиарда примерно - вот такой простенький переборный код,

#include <vector>
#include <iostream>
#include <iomanip>
#include <map>

using namespace std;

map<int,vector<pair<int,int>>> m;

int main()
{
    const int N = 1000;
    for(int i = 1; i <= N; ++i)
        for(int j = i; j <= N; ++j)
            m[i*i*i+j*j*j].emplace_back(i,j);

    for(const auto& [n,v]: m)
        if (v.size() > 1)
            cout << n << "  " << v.size() << endl;
}

который менее чем за полсекунды выкидывает результат - список таких чисел. Дописать, если нужно, вывод самих возводимых в куб чисел - одна строка :)

Кстати говоря, эти числа - последовательность A001235 в OEIS.

→ Ссылка